From e31a919c62c02a1526d2eebbf072085605223c87 Mon Sep 17 00:00:00 2001 From: xiaoweim Date: Fri, 6 Sep 2024 00:40:18 +0000 Subject: [PATCH] add CRD for bigquerydataset --- .../bigqueryconnectionconnection_types.go | 188 + apis/bigqueryconnection/v1alpha1/doc.go | 16 + .../v1alpha1/groupversion_info.go | 33 + .../v1alpha1/types.generated.go | 275 + .../v1alpha1/zz_generated.deepcopy.go | 671 + ...ertificatemanagerdnsauthorization_types.go | 131 + apis/certificatemanager/v1alpha1/doc.go | 15 + .../v1alpha1/groupversion_info.go | 33 + .../v1alpha1/types.generated.go | 340 + .../v1alpha1/zz_generated.deepcopy.go | 784 + ...ertificatemanagerdnsauthorization_types.go | 132 + apis/certificatemanager/v1beta1/doc.go | 15 + .../v1beta1/groupversion_info.go | 33 + .../v1beta1/types.generated.go | 340 + .../v1beta1/zz_generated.deepcopy.go | 784 + apis/firestore/v1alpha1/doc.go | 16 + .../v1alpha1/firestoredatabase_types.go | 152 + apis/firestore/v1alpha1/groupversion_info.go | 33 + apis/firestore/v1alpha1/types.generated.go | 93 + .../v1alpha1/zz_generated.deepcopy.go | 190 + .../v1beta1/gkehubfeaturemembership_types.go | 2 +- apis/refs/v1beta1/alertpolicyref.go | 2 +- apis/refs/v1beta1/computerefs.go | 20 +- apis/refs/v1beta1/projectref.go | 2 +- ...kehub_v1beta1_gkehubfeaturemembership.yaml | 29 +- ...eyskeys.apikeys.cnrm.cloud.google.com.yaml | 2 +- ...queryconnection.cnrm.cloud.google.com.yaml | 115 +- ...tasets.bigquery.cnrm.cloud.google.com.yaml | 322 +- ...tificatemanager.cnrm.cloud.google.com.yaml | 119 +- ...ools.cloudbuild.cnrm.cloud.google.com.yaml | 4 +- ...ngrules.compute.cnrm.cloud.google.com.yaml | 202 +- ...tejobs.dataflow.cnrm.cloud.google.com.yaml | 2 +- ...tories.dataform.cnrm.cloud.google.com.yaml | 2 +- ...ases.firestore.cnrm.cloud.google.com.yaml} | 128 +- ...berships.gkehub.cnrm.cloud.google.com.yaml | 6 +- ...metrics.logging.cnrm.cloud.google.com.yaml | 2 +- ...ards.monitoring.cnrm.cloud.google.com.yaml | 26 +- ...orkconnectivity.cnrm.cloud.google.com.yaml | 4 +- ...sclusters.redis.cnrm.cloud.google.com.yaml | 2 +- .../gkehub_v1beta1_gkehubfeature.yaml | 2 - config/tests/samples/create/harness.go | 27 +- .../servicemapping/servicemapping_test.go | 5 + ...esscontextmanageraccesslevelcondition.yaml | 2 +- ...esscontextmanagergcpuseraccessbinding.yaml | 2 +- ...beta1_accesscontextmanageraccesslevel.yaml | 2 +- ...eta1_accesscontextmanageraccesspolicy.yaml | 2 +- ..._accesscontextmanagerserviceperimeter.yaml | 2 +- ...ontextmanagerserviceperimeterresource.yaml | 2 +- crds/alloydb_v1beta1_alloydbbackup.yaml | 2 +- crds/alloydb_v1beta1_alloydbcluster.yaml | 18 +- crds/alloydb_v1beta1_alloydbinstance.yaml | 2 +- crds/alloydb_v1beta1_alloydbuser.yaml | 2 +- crds/apigateway_v1alpha1_apigatewayapi.yaml | 2 +- ...igateway_v1alpha1_apigatewayapiconfig.yaml | 2 +- ...apigateway_v1alpha1_apigatewaygateway.yaml | 2 +- crds/apigee_v1alpha1_apigeeaddonsconfig.yaml | 2 +- ...gee_v1alpha1_apigeeendpointattachment.yaml | 2 +- crds/apigee_v1alpha1_apigeeenvgroup.yaml | 2 +- ...gee_v1alpha1_apigeeenvgroupattachment.yaml | 2 +- crds/apigee_v1alpha1_apigeeinstance.yaml | 2 +- ...gee_v1alpha1_apigeeinstanceattachment.yaml | 2 +- crds/apigee_v1alpha1_apigeenataddress.yaml | 2 +- ...igee_v1alpha1_apigeesyncauthorization.yaml | 2 +- crds/apigee_v1beta1_apigeeenvironment.yaml | 2 +- crds/apigee_v1beta1_apigeeorganization.yaml | 2 +- crds/apikeys_v1alpha1_apikeyskey.yaml | 2 +- ...ngine_v1alpha1_appenginedomainmapping.yaml | 2 +- ...engine_v1alpha1_appenginefirewallrule.yaml | 2 +- ..._v1alpha1_appengineflexibleappversion.yaml | 2 +- ...v1alpha1_appengineservicesplittraffic.yaml | 2 +- ..._v1alpha1_appenginestandardappversion.yaml | 2 +- ...ry_v1beta1_artifactregistryrepository.yaml | 2 +- ...corp_v1alpha1_beyondcorpappconnection.yaml | 2 +- ...dcorp_v1alpha1_beyondcorpappconnector.yaml | 2 +- ...ondcorp_v1alpha1_beyondcorpappgateway.yaml | 2 +- ...gquery_v1alpha1_bigquerydatasetaccess.yaml | 2 +- crds/bigquery_v1beta1_bigquerydataset.yaml | 2 +- crds/bigquery_v1beta1_bigqueryjob.yaml | 2 +- crds/bigquery_v1beta1_bigqueryroutine.yaml | 2 +- crds/bigquery_v1beta1_bigquerytable.yaml | 2 +- ...pha1_bigqueryanalyticshubdataexchange.yaml | 2 +- ..._v1alpha1_bigqueryanalyticshublisting.yaml | 2 +- ...v1alpha1_bigqueryconnectionconnection.yaml | 113 +- ...v1alpha1_bigquerydatapolicydatapolicy.yaml | 2 +- ...r_v1alpha1_bigquerydatatransferconfig.yaml | 2 +- ...bigqueryreservationcapacitycommitment.yaml | 2 +- ...alpha1_bigqueryreservationreservation.yaml | 2 +- crds/bigtable_v1beta1_bigtableappprofile.yaml | 2 +- crds/bigtable_v1beta1_bigtablegcpolicy.yaml | 2 +- crds/bigtable_v1beta1_bigtableinstance.yaml | 11 +- crds/bigtable_v1beta1_bigtabletable.yaml | 2 +- ...gbudgets_v1beta1_billingbudgetsbudget.yaml | 2 +- ...n_v1beta1_binaryauthorizationattestor.yaml | 2 +- ...ion_v1beta1_binaryauthorizationpolicy.yaml | 2 +- ...v1beta1_certificatemanagercertificate.yaml | 2 +- ...eta1_certificatemanagercertificatemap.yaml | 2 +- ...certificatemanagercertificatemapentry.yaml | 2 +- ...a1_certificatemanagerdnsauthorization.yaml | 2 +- ...udasset_v1alpha1_cloudassetfolderfeed.yaml | 2 +- ...t_v1alpha1_cloudassetorganizationfeed.yaml | 2 +- ...dasset_v1alpha1_cloudassetprojectfeed.yaml | 2 +- .../cloudbuild_v1beta1_cloudbuildtrigger.yaml | 2 +- ...oudbuild_v1beta1_cloudbuildworkerpool.yaml | 14 +- ...ons2_v1alpha1_cloudfunctions2function.yaml | 2 +- ...ctions_v1beta1_cloudfunctionsfunction.yaml | 2 +- ...udidentity_v1beta1_cloudidentitygroup.yaml | 2 +- ...ntity_v1beta1_cloudidentitymembership.yaml | 2 +- crds/cloudids_v1beta1_cloudidsendpoint.yaml | 2 +- crds/cloudiot_v1alpha1_cloudiotdevice.yaml | 2 +- ...udiot_v1alpha1_cloudiotdeviceregistry.yaml | 2 +- ...udscheduler_v1beta1_cloudschedulerjob.yaml | 2 +- crds/cloudtasks_v1alpha1_cloudtasksqueue.yaml | 2 +- crds/compute_v1alpha1_computeautoscaler.yaml | 2 +- ...pha1_computebackendbucketsignedurlkey.yaml | 2 +- ...ha1_computebackendservicesignedurlkey.yaml | 2 +- ...1_computediskresourcepolicyattachment.yaml | 2 +- ...v1alpha1_computeglobalnetworkendpoint.yaml | 2 +- ...ha1_computeglobalnetworkendpointgroup.yaml | 2 +- ...1alpha1_computeinstancegroupnamedport.yaml | 2 +- .../compute_v1alpha1_computemachineimage.yaml | 2 +- ...mpute_v1alpha1_computenetworkendpoint.yaml | 2 +- ...pha1_computenetworkfirewallpolicyrule.yaml | 2 +- ...ha1_computenetworkpeeringroutesconfig.yaml | 2 +- ...ha1_computeorganizationsecuritypolicy.yaml | 2 +- ...organizationsecuritypolicyassociation.yaml | 2 +- ...computeorganizationsecuritypolicyrule.yaml | 2 +- ...ute_v1alpha1_computeperinstanceconfig.yaml | 2 +- ...pute_v1alpha1_computeregionautoscaler.yaml | 2 +- ...uteregiondiskresourcepolicyattachment.yaml | 2 +- ...alpha1_computeregionperinstanceconfig.yaml | 2 +- ...mpute_v1alpha1_computeregionsslpolicy.yaml | 2 +- crds/compute_v1beta1_computeaddress.yaml | 2 +- .../compute_v1beta1_computebackendbucket.yaml | 2 +- ...compute_v1beta1_computebackendservice.yaml | 2 +- crds/compute_v1beta1_computedisk.yaml | 2 +- ...ute_v1beta1_computeexternalvpngateway.yaml | 2 +- crds/compute_v1beta1_computefirewall.yaml | 2 +- ...compute_v1beta1_computefirewallpolicy.yaml | 2 +- ...eta1_computefirewallpolicyassociation.yaml | 2 +- ...ute_v1beta1_computefirewallpolicyrule.yaml | 2 +- ...compute_v1beta1_computeforwardingrule.yaml | 202 +- crds/compute_v1beta1_computehealthcheck.yaml | 2 +- ...ompute_v1beta1_computehttphealthcheck.yaml | 2 +- ...mpute_v1beta1_computehttpshealthcheck.yaml | 2 +- crds/compute_v1beta1_computeimage.yaml | 2 +- crds/compute_v1beta1_computeinstance.yaml | 2 +- .../compute_v1beta1_computeinstancegroup.yaml | 2 +- ...e_v1beta1_computeinstancegroupmanager.yaml | 2 +- ...mpute_v1beta1_computeinstancetemplate.yaml | 2 +- ...v1beta1_computeinterconnectattachment.yaml | 2 +- ..._v1beta1_computemanagedsslcertificate.yaml | 2 +- crds/compute_v1beta1_computenetwork.yaml | 2 +- ...e_v1beta1_computenetworkendpointgroup.yaml | 2 +- ..._v1beta1_computenetworkfirewallpolicy.yaml | 2 +- ...mputenetworkfirewallpolicyassociation.yaml | 2 +- ...compute_v1beta1_computenetworkpeering.yaml | 2 +- crds/compute_v1beta1_computenodegroup.yaml | 2 +- crds/compute_v1beta1_computenodetemplate.yaml | 2 +- ...ompute_v1beta1_computepacketmirroring.yaml | 2 +- ...ompute_v1beta1_computeprojectmetadata.yaml | 2 +- ...ta1_computeregionnetworkendpointgroup.yaml | 2 +- crds/compute_v1beta1_computereservation.yaml | 2 +- ...compute_v1beta1_computeresourcepolicy.yaml | 2 +- crds/compute_v1beta1_computeroute.yaml | 2 +- crds/compute_v1beta1_computerouter.yaml | 2 +- ...ompute_v1beta1_computerouterinterface.yaml | 2 +- crds/compute_v1beta1_computerouternat.yaml | 2 +- crds/compute_v1beta1_computerouterpeer.yaml | 2 +- ...compute_v1beta1_computesecuritypolicy.yaml | 2 +- ...pute_v1beta1_computeserviceattachment.yaml | 2 +- ...e_v1beta1_computesharedvpchostproject.yaml | 2 +- ...1beta1_computesharedvpcserviceproject.yaml | 2 +- crds/compute_v1beta1_computesnapshot.yaml | 2 +- ...compute_v1beta1_computesslcertificate.yaml | 2 +- crds/compute_v1beta1_computesslpolicy.yaml | 2 +- crds/compute_v1beta1_computesubnetwork.yaml | 2 +- ...ompute_v1beta1_computetargetgrpcproxy.yaml | 2 +- ...ompute_v1beta1_computetargethttpproxy.yaml | 2 +- ...mpute_v1beta1_computetargethttpsproxy.yaml | 2 +- ...compute_v1beta1_computetargetinstance.yaml | 2 +- crds/compute_v1beta1_computetargetpool.yaml | 2 +- ...compute_v1beta1_computetargetsslproxy.yaml | 2 +- ...compute_v1beta1_computetargettcpproxy.yaml | 2 +- ...mpute_v1beta1_computetargetvpngateway.yaml | 2 +- crds/compute_v1beta1_computeurlmap.yaml | 2 +- crds/compute_v1beta1_computevpngateway.yaml | 2 +- crds/compute_v1beta1_computevpntunnel.yaml | 2 +- ...ller_v1beta1_configcontrollerinstance.yaml | 2 +- crds/container_v1beta1_containercluster.yaml | 11 +- crds/container_v1beta1_containernodepool.yaml | 11 +- ..._v1alpha1_containeranalysisoccurrence.yaml | 2 +- ...nalysis_v1beta1_containeranalysisnote.yaml | 2 +- ...ched_v1beta1_containerattachedcluster.yaml | 2 +- ...datacatalog_v1alpha1_datacatalogentry.yaml | 2 +- ...atalog_v1alpha1_datacatalogentrygroup.yaml | 2 +- crds/datacatalog_v1alpha1_datacatalogtag.yaml | 2 +- ...talog_v1alpha1_datacatalogtagtemplate.yaml | 2 +- ...acatalog_v1beta1_datacatalogpolicytag.yaml | 2 +- ...tacatalog_v1beta1_datacatalogtaxonomy.yaml | 2 +- ...aflow_v1beta1_dataflowflextemplatejob.yaml | 119 +- crds/dataflow_v1beta1_dataflowjob.yaml | 2 +- .../dataform_v1alpha1_dataformrepository.yaml | 153 +- ...datafusion_v1beta1_datafusioninstance.yaml | 2 +- ...roc_v1beta1_dataprocautoscalingpolicy.yaml | 2 +- crds/dataproc_v1beta1_dataproccluster.yaml | 2 +- ...proc_v1beta1_dataprocworkflowtemplate.yaml | 2 +- crds/datastore_v1alpha1_datastoreindex.yaml | 2 +- ..._v1alpha1_datastreamconnectionprofile.yaml | 2 +- ..._v1alpha1_datastreamprivateconnection.yaml | 2 +- .../datastream_v1alpha1_datastreamstream.yaml | 2 +- ..._v1alpha1_deploymentmanagerdeployment.yaml | 2 +- crds/dialogflow_v1alpha1_dialogflowagent.yaml | 2 +- ...logflow_v1alpha1_dialogflowentitytype.yaml | 2 +- ...ogflow_v1alpha1_dialogflowfulfillment.yaml | 2 +- .../dialogflow_v1alpha1_dialogflowintent.yaml | 2 +- ...alogflowcx_v1alpha1_dialogflowcxagent.yaml | 2 +- ...lowcx_v1alpha1_dialogflowcxentitytype.yaml | 2 +- ...ialogflowcx_v1alpha1_dialogflowcxflow.yaml | 2 +- ...logflowcx_v1alpha1_dialogflowcxintent.yaml | 2 +- ...ialogflowcx_v1alpha1_dialogflowcxpage.yaml | 2 +- ...ogflowcx_v1alpha1_dialogflowcxwebhook.yaml | 2 +- crds/dlp_v1beta1_dlpdeidentifytemplate.yaml | 2 +- crds/dlp_v1beta1_dlpinspecttemplate.yaml | 2 +- crds/dlp_v1beta1_dlpjobtrigger.yaml | 2 +- crds/dlp_v1beta1_dlpstoredinfotype.yaml | 2 +- crds/dns_v1alpha1_dnsresponsepolicy.yaml | 2 +- crds/dns_v1alpha1_dnsresponsepolicyrule.yaml | 2 +- crds/dns_v1beta1_dnsmanagedzone.yaml | 2 +- crds/dns_v1beta1_dnspolicy.yaml | 2 +- crds/dns_v1beta1_dnsrecordset.yaml | 2 +- ...cumentai_v1alpha1_documentaiprocessor.yaml | 2 +- ...ha1_documentaiprocessordefaultversion.yaml | 2 +- ...ontainer_v1beta1_edgecontainercluster.yaml | 2 +- ...ntainer_v1beta1_edgecontainernodepool.yaml | 2 +- ...er_v1beta1_edgecontainervpnconnection.yaml | 2 +- ...dgenetwork_v1beta1_edgenetworknetwork.yaml | 2 +- ...edgenetwork_v1beta1_edgenetworksubnet.yaml | 2 +- ...cts_v1alpha1_essentialcontactscontact.yaml | 2 +- crds/eventarc_v1beta1_eventarctrigger.yaml | 2 +- .../filestore_v1alpha1_filestoresnapshot.yaml | 2 +- crds/filestore_v1beta1_filestorebackup.yaml | 2 +- crds/filestore_v1beta1_filestoreinstance.yaml | 2 +- .../firebase_v1alpha1_firebaseandroidapp.yaml | 2 +- crds/firebase_v1alpha1_firebaseproject.yaml | 2 +- crds/firebase_v1alpha1_firebasewebapp.yaml | 2 +- ...ase_v1alpha1_firebasedatabaseinstance.yaml | 2 +- ...sting_v1alpha1_firebasehostingchannel.yaml | 2 +- ...ehosting_v1alpha1_firebasehostingsite.yaml | 2 +- ...torage_v1alpha1_firebasestoragebucket.yaml | 2 +- crds/firestore_v1beta1_firestoreindex.yaml | 2 +- ...kebackup_v1alpha1_gkebackupbackupplan.yaml | 2 +- crds/gkehub_v1beta1_gkehubfeature.yaml | 2 +- ...kehub_v1beta1_gkehubfeaturemembership.yaml | 18 +- crds/gkehub_v1beta1_gkehubmembership.yaml | 2 +- ...hcare_v1alpha1_healthcareconsentstore.yaml | 2 +- ...healthcare_v1alpha1_healthcaredataset.yaml | 2 +- ...lthcare_v1alpha1_healthcaredicomstore.yaml | 2 +- ...althcare_v1alpha1_healthcarefhirstore.yaml | 2 +- ...lthcare_v1alpha1_healthcarehl7v2store.yaml | 2 +- crds/iam_v1beta1_iamaccessboundarypolicy.yaml | 2 +- crds/iam_v1beta1_iamauditconfig.yaml | 2 +- crds/iam_v1beta1_iamcustomrole.yaml | 2 +- crds/iam_v1beta1_iampartialpolicy.yaml | 2 +- crds/iam_v1beta1_iampolicy.yaml | 2 +- crds/iam_v1beta1_iampolicymember.yaml | 2 +- crds/iam_v1beta1_iamserviceaccount.yaml | 2 +- crds/iam_v1beta1_iamserviceaccountkey.yaml | 2 +- crds/iam_v1beta1_iamworkforcepool.yaml | 2 +- .../iam_v1beta1_iamworkforcepoolprovider.yaml | 2 +- crds/iam_v1beta1_iamworkloadidentitypool.yaml | 2 +- ...beta1_iamworkloadidentitypoolprovider.yaml | 2 +- crds/iap_v1beta1_iapbrand.yaml | 2 +- ...p_v1beta1_iapidentityawareproxyclient.yaml | 2 +- ...tityplatformdefaultsupportedidpconfig.yaml | 2 +- ...ha1_identityplatforminboundsamlconfig.yaml | 2 +- ..._identityplatformprojectdefaultconfig.yaml | 2 +- ...atformtenantdefaultsupportedidpconfig.yaml | 2 +- ...entityplatformtenantinboundsamlconfig.yaml | 2 +- ...atform_v1beta1_identityplatformconfig.yaml | 2 +- ...1beta1_identityplatformoauthidpconfig.yaml | 2 +- ...atform_v1beta1_identityplatformtenant.yaml | 2 +- ..._identityplatformtenantoauthidpconfig.yaml | 2 +- crds/kms_v1alpha1_kmscryptokeyversion.yaml | 2 +- crds/kms_v1alpha1_kmskeyringimportjob.yaml | 2 +- crds/kms_v1alpha1_kmssecretciphertext.yaml | 2 +- crds/kms_v1beta1_kmscryptokey.yaml | 2 +- crds/kms_v1beta1_kmskeyring.yaml | 2 +- crds/logging_v1beta1_logginglogbucket.yaml | 2 +- crds/logging_v1beta1_logginglogexclusion.yaml | 2 +- crds/logging_v1beta1_logginglogmetric.yaml | 2 +- crds/logging_v1beta1_logginglogsink.yaml | 2 +- crds/logging_v1beta1_logginglogview.yaml | 2 +- crds/memcache_v1beta1_memcacheinstance.yaml | 2 +- crds/mlengine_v1alpha1_mlenginemodel.yaml | 2 +- ...itoring_v1beta1_monitoringalertpolicy.yaml | 2 +- ...onitoring_v1beta1_monitoringdashboard.yaml | 2 +- crds/monitoring_v1beta1_monitoringgroup.yaml | 2 +- ...ng_v1beta1_monitoringmetricdescriptor.yaml | 2 +- ...ng_v1beta1_monitoringmonitoredproject.yaml | 2 +- ...v1beta1_monitoringnotificationchannel.yaml | 2 +- .../monitoring_v1beta1_monitoringservice.yaml | 2 +- ...beta1_monitoringservicelevelobjective.yaml | 2 +- ...g_v1beta1_monitoringuptimecheckconfig.yaml | 2 +- ...rkconnectivityserviceconnectionpolicy.yaml | 42 +- ...tivity_v1beta1_networkconnectivityhub.yaml | 2 +- ...vity_v1beta1_networkconnectivityspoke.yaml | 2 +- ...ha1_networkmanagementconnectivitytest.yaml | 2 +- ...a1_networksecurityauthorizationpolicy.yaml | 2 +- ...1beta1_networksecurityclienttlspolicy.yaml | 2 +- ...1beta1_networksecurityservertlspolicy.yaml | 2 +- ...alpha1_networkservicesedgecachekeyset.yaml | 2 +- ...alpha1_networkservicesedgecacheorigin.yaml | 2 +- ...lpha1_networkservicesedgecacheservice.yaml | 2 +- ...v1beta1_networkservicesendpointpolicy.yaml | 2 +- ...rvices_v1beta1_networkservicesgateway.yaml | 2 +- ...ices_v1beta1_networkservicesgrpcroute.yaml | 2 +- ...ices_v1beta1_networkserviceshttproute.yaml | 2 +- ...kservices_v1beta1_networkservicesmesh.yaml | 2 +- ...vices_v1beta1_networkservicestcproute.yaml | 2 +- ...vices_v1beta1_networkservicestlsroute.yaml | 2 +- ...tebooks_v1alpha1_notebooksenvironment.yaml | 2 +- ...cy_v1alpha1_orgpolicycustomconstraint.yaml | 2 +- ...nfig_v1alpha1_osconfigpatchdeployment.yaml | 2 +- .../osconfig_v1beta1_osconfigguestpolicy.yaml | 2 +- ...ig_v1beta1_osconfigospolicyassignment.yaml | 2 +- .../oslogin_v1alpha1_osloginsshpublickey.yaml | 2 +- crds/privateca_v1beta1_privatecacapool.yaml | 2 +- ...rivateca_v1beta1_privatecacertificate.yaml | 2 +- ...v1beta1_privatecacertificateauthority.yaml | 2 +- ..._v1beta1_privatecacertificatetemplate.yaml | 2 +- crds/pubsub_v1beta1_pubsubschema.yaml | 2 +- crds/pubsub_v1beta1_pubsubsubscription.yaml | 2 +- crds/pubsub_v1beta1_pubsubtopic.yaml | 2 +- ...blite_v1alpha1_pubsublitesubscription.yaml | 2 +- crds/pubsublite_v1alpha1_pubsublitetopic.yaml | 2 +- ...sublite_v1beta1_pubsublitereservation.yaml | 2 +- ...rprise_v1beta1_recaptchaenterprisekey.yaml | 2 +- crds/redis_v1alpha1_rediscluster.yaml | 76 +- crds/redis_v1beta1_redisinstance.yaml | 2 +- crds/resourcemanager_v1beta1_folder.yaml | 2 +- crds/resourcemanager_v1beta1_project.yaml | 2 +- ...cemanager_v1beta1_resourcemanagerlien.yaml | 2 +- ...manager_v1beta1_resourcemanagerpolicy.yaml | 2 +- crds/run_v1beta1_runjob.yaml | 14 +- crds/run_v1beta1_runservice.yaml | 2 +- ...etmanager_v1beta1_secretmanagersecret.yaml | 2 +- ...er_v1beta1_secretmanagersecretversion.yaml | 2 +- ..._v1alpha1_securesourcemanagerinstance.yaml | 28 +- ...pha1_securitycenternotificationconfig.yaml | 2 +- ...ycenter_v1alpha1_securitycentersource.yaml | 2 +- ...tory_v1beta1_servicedirectoryendpoint.yaml | 2 +- ...ory_v1beta1_servicedirectorynamespace.yaml | 2 +- ...ctory_v1beta1_servicedirectoryservice.yaml | 2 +- ...g_v1beta1_servicenetworkingconnection.yaml | 2 +- ...ha1_serviceusageconsumerquotaoverride.yaml | 2 +- crds/serviceusage_v1beta1_service.yaml | 2 +- .../serviceusage_v1beta1_serviceidentity.yaml | 2 +- ...urcerepo_v1beta1_sourcereporepository.yaml | 2 +- crds/spanner_v1beta1_spannerdatabase.yaml | 2 +- crds/spanner_v1beta1_spannerinstance.yaml | 2 +- crds/sql_v1beta1_sqldatabase.yaml | 2 +- crds/sql_v1beta1_sqlinstance.yaml | 191 +- crds/sql_v1beta1_sqlsslcert.yaml | 2 +- crds/sql_v1beta1_sqluser.yaml | 2 +- crds/storage_v1alpha1_storagehmackey.yaml | 2 +- crds/storage_v1beta1_storagebucket.yaml | 2 +- ...ge_v1beta1_storagebucketaccesscontrol.yaml | 2 +- ...ta1_storagedefaultobjectaccesscontrol.yaml | 2 +- crds/storage_v1beta1_storagenotification.yaml | 2 +- ...fer_v1alpha1_storagetransferagentpool.yaml | 2 +- ...getransfer_v1beta1_storagetransferjob.yaml | 2 +- .../tags_v1alpha1_tagslocationtagbinding.yaml | 2 +- crds/tags_v1beta1_tagstagbinding.yaml | 2 +- crds/tags_v1beta1_tagstagkey.yaml | 2 +- crds/tags_v1beta1_tagstagvalue.yaml | 2 +- crds/tpu_v1alpha1_tpunode.yaml | 2 +- ...ertexai_v1alpha1_vertexaifeaturestore.yaml | 2 +- ...alpha1_vertexaifeaturestoreentitytype.yaml | 2 +- ...vertexaifeaturestoreentitytypefeature.yaml | 2 +- ...rtexai_v1alpha1_vertexaiindexendpoint.yaml | 2 +- ...rtexai_v1alpha1_vertexaimetadatastore.yaml | 2 +- ...vertexai_v1alpha1_vertexaitensorboard.yaml | 2 +- crds/vertexai_v1beta1_vertexaidataset.yaml | 2 +- crds/vertexai_v1beta1_vertexaiendpoint.yaml | 2 +- crds/vertexai_v1beta1_vertexaiindex.yaml | 2 +- .../vpcaccess_v1beta1_vpcaccessconnector.yaml | 2 +- .../workflows_v1alpha1_workflowsworkflow.yaml | 2 +- ...alpha1_workstationsworkstationcluster.yaml | 2 +- .../ci/periodics/e2e-service-cloudkms | 14 +- dev/tasks/create-test-project | 2 + dev/tasks/find-missing-fields | 4 + dev/tasks/generate-crds | 3 +- dev/tools/controllerbuilder/cmd/root.go | 58 +- dev/tools/controllerbuilder/generate.sh | 43 +- .../pkg/codegen/mappergenerator.go | 77 +- .../controllerbuilder/scaffold/controller.go | 8 +- .../template/{ => controller}/controller.go | 167 +- .../{ => controller}/externalresource.go | 46 +- dev/tools/proto-to-mapper/Makefile | 1 + .../scenarios/migrate-tf-resource-alpha.md | 3 +- .../scenarios/migrate-tf-resource-beta.md | 1 + docs/develop-resources/scenarios/new-field.md | 10 + .../scenarios/new-resource.md | 1 + docs/releasenotes/release-1.122.md | 30 +- docs/releasenotes/release-1.123.md | 26 + go.mod | 10 +- go.sum | 12 +- .../0-cnrm-system.yaml | 78 +- .../crds.yaml | 1915 +- .../0-cnrm-system.yaml | 76 +- .../crds.yaml | 1915 +- .../per-namespace-components.yaml | 18 +- .../0-cnrm-system.yaml | 78 +- .../crds.yaml | 1915 +- .../0-cnrm-system.yaml | 78 +- .../install-bundle-gcp-identity/crds.yaml | 1915 +- .../0-cnrm-system.yaml | 76 +- .../install-bundle-namespaced/crds.yaml | 1915 +- .../per-namespace-components.yaml | 18 +- .../0-cnrm-system.yaml | 78 +- .../crds.yaml | 1915 +- mockgcp/Makefile | 45 +- mockgcp/README.md | 19 +- mockgcp/fixup-third-party.sh | 4 + .../configmanagement/configmanagement.pb.go | 2 +- .../mockgcp/firestore/admin/v1/backup.pb.go | 437 + .../mockgcp/firestore/admin/v1/database.pb.go | 750 + .../mockgcp/firestore/admin/v1/field.pb.go | 510 + .../firestore/admin/v1/firestore_admin.pb.go | 3226 ++++ .../admin/v1/firestore_admin.pb.gw.go | 2904 +++ .../admin/v1/firestore_admin_grpc.pb.go | 1115 ++ .../mockgcp/firestore/admin/v1/index.pb.go | 901 + .../mockgcp/firestore/admin/v1/location.pb.go | 164 + .../firestore/admin/v1/operation.pb.go | 1602 ++ .../mockgcp/firestore/admin/v1/schedule.pb.go | 448 + mockgcp/mock_http_roundtrip.go | 2 + mockgcp/mockbigqueryconnection/connection.go | 37 +- mockgcp/mockcloudbuild/workerpool.go | 6 + mockgcp/mockcompute/globaladdress.go | 20 +- .../mockcompute/globalsslcertificatesv1.go | 16 +- .../mockcompute/globaltargethttpsproxiesv1.go | 273 + mockgcp/mockcompute/globaltargettcpproxyv1.go | 166 + mockgcp/mockcompute/regionaladdress.go | 24 +- .../mockcompute/regionalsslcertificatesv1.go | 138 + .../regionaltargethttpsproxiesv1.go | 218 + mockgcp/mockcompute/service.go | 26 +- mockgcp/mockcompute/targetsslproxyv1.go | 136 + mockgcp/mockfirestore/database.go | 168 + mockgcp/mockfirestore/service.go | 72 + mockgcp/mockgkemulticloud/attachedcluster.go | 64 +- mockgcp/mockgkemulticloud/service.go | 16 +- mockgcp/mockkms/cryptokey.go | 37 +- mockgcp/mockkms/cryptokeyversion.go | 10 +- mockgcp/mocksql/sqlinstance.go | 33 +- .../cluster/gcp-identity/0-cnrm-system.yaml | 78 +- .../workload-identity/0-cnrm-system.yaml | 78 +- .../{1.119.0 => 1.122.0}/crds.yaml | 14810 ++++++++++------ .../namespaced/0-cnrm-system.yaml | 76 +- .../namespaced/per-namespace-components.yaml | 18 +- operator/autopilot-channels/stable | 2 +- .../cluster/gcp-identity/0-cnrm-system.yaml | 78 +- .../workload-identity/0-cnrm-system.yaml | 78 +- .../{1.119.0 => 1.122.0}/crds.yaml | 14810 ++++++++++------ .../namespaced/0-cnrm-system.yaml | 76 +- .../namespaced/per-namespace-components.yaml | 18 +- operator/channels/stable | 2 +- operator/config/autopilot/kustomization.yaml | 2 +- operator/config/default/kustomization.yaml | 2 +- .../config/gke-addon/image_configmap.yaml | 10 +- operator/config/rbac/cnrm_viewer_role.yaml | 2 +- operator/scripts/update-kcc-manifest/main.go | 102 +- .../bigquery/v1beta1/bigquerydataset_types.go | 189 +- .../bigquery/v1beta1/zz_generated.deepcopy.go | 8 +- .../bigqueryconnectionconnection_types.go | 61 +- .../v1alpha1/zz_generated.deepcopy.go | 35 +- ...ertificatemanagerdnsauthorization_types.go | 11 +- .../v1beta1/computeforwardingrule_types.go | 31 +- .../compute/v1beta1/zz_generated.deepcopy.go | 5 + .../v1alpha1/doc.go | 6 +- .../v1alpha1/firestoredatabase_types.go | 159 + .../v1alpha1/register.go | 14 +- .../v1alpha1/zz_generated.deepcopy.go | 110 +- .../v1beta1/gkehubfeaturemembership_types.go | 2 +- .../v1beta1/monitoringdashboard_types.go | 2 +- .../apis/securesourcemanager/group.go | 32 - .../securesourcemanagerinstance_types.go | 134 - .../client/clientset/versioned/clientset.go | 26 +- .../versioned/fake/clientset_generated.go | 14 +- .../clientset/versioned/fake/register.go | 4 +- .../clientset/versioned/scheme/register.go | 4 +- .../v1alpha1/doc.go | 0 .../v1alpha1/fake/doc.go | 0 .../v1alpha1/fake/fake_firestore_client.go} | 10 +- .../v1alpha1/fake/fake_firestoredatabase.go | 144 + .../v1alpha1/firestore_client.go} | 36 +- .../firestore/v1alpha1/firestoredatabase.go | 198 + .../v1alpha1/generated_expansion.go | 2 +- .../fake/fake_securesourcemanagerinstance.go | 144 - .../v1alpha1/securesourcemanagerinstance.go | 198 - pkg/controller/dcl/controller.go | 12 +- .../connection_controller.go | 307 + .../connection_externalresource.go | 77 + .../bigqueryconnection/connection_mapping.go | 69 + .../bigqueryconnection/mapper.generated.go | 390 + .../bigquerydatatransfer_mappings.go | 133 + .../bigquerydatatransfer/mapper.generated.go | 74 + .../direct/cloudbuild/workerpool_mappings.go | 4 +- .../compute/forwardingrule_controller.go | 30 + .../forwardingrule_externalresource.go | 6 +- .../direct/compute/mapper.generated.go | 41 +- pkg/controller/direct/compute/refs.go | 7 +- .../direct/compute/roundtrip_test.go | 100 + .../direct/dataform/repository_mappings.go | 5 +- .../direct/dataform/roundtrip_test.go | 68 + .../directbase/directbase_controller.go | 23 +- pkg/controller/direct/firestore/client.go | 46 + .../firestore/firestoredatabase_controller.go | 344 + .../firestoredatabase_externalresource.go | 68 + .../firestore/firestoredatabase_mappings.go | 61 + .../direct/firestore/mapper.generated.go | 44 + pkg/controller/direct/maputils.go | 37 +- pkg/controller/direct/monitoring/utils.go | 2 +- pkg/controller/direct/register/register.go | 2 + pkg/controller/direct/registry/registry.go | 9 +- pkg/controller/direct/sql/mapping.go | 151 +- pkg/controller/direct/sql/merge.go | 88 +- .../direct/sql/sqlinstance_controller.go | 9 +- .../dynamic_controller_integration_test.go | 6 +- pkg/controller/kccmanager/kccmanager.go | 2 +- pkg/controller/predicate/optin.go | 33 + .../registration/registration_controller.go | 86 +- pkg/controller/tf/controller.go | 6 +- pkg/k8s/allowlist_test.go | 7 +- pkg/k8s/constants.go | 2 +- pkg/k8s/finalizers.go | 1 + pkg/k8s/stateintospecdefaulter_test.go | 2 +- pkg/test/fuzz/generate.go | 3 + .../resourcefixture/contexts/sql_context.go | 14 + ...ted_object_basicalloydbcluster.golden.yaml | 10 +- ...t_basicalloydbsecondarycluster.golden.yaml | 2 +- .../basicalloydbsecondarycluster/_http.log | 76 +- ...ated_object_fullalloydbcluster.golden.yaml | 6 +- .../fullalloydbcluster/_http.log | 46 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...ed_object_basicalloydbinstance.golden.yaml | 2 +- .../basicalloydbinstance/_http.log | 76 +- ..._basicalloydbsecondaryinstance.golden.yaml | 2 +- .../basicalloydbsecondaryinstance/_http.log | 76 +- ...ted_object_fullalloydbinstance.golden.yaml | 8 +- .../fullalloydbinstance/_http.log | 76 +- ...ted_object_readalloydbinstance.golden.yaml | 7 +- .../readalloydbinstance/_http.log | 76 +- ...ed_object_zonalalloydbinstance.golden.yaml | 2 +- .../zonalalloydbinstance/_http.log | 76 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...ect_artifactregistryrepository.golden.yaml | 2 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...ed_object_basicbigquerydataset.golden.yaml | 26 +- ...ect_bigquerydatasetaccessblock.golden.yaml | 2 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...generated_object_bigquerytable.golden.yaml | 4 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...queryconnectionconnectionbasic.golden.yaml | 14 +- .../_http.log | 44 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 .../create.yaml | 3 +- ...gqueryconnectionconnectionfull.golden.yaml | 17 +- .../_http.log | 44 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 .../create.yaml | 4 +- .../update.yaml | 4 +- ...erated_object_bigtableinstance.golden.yaml | 2 +- ...ct_bigtableinstanceautoscaling.golden.yaml | 14 +- .../bigtableinstanceautoscaling/_http.log | 98 - ...t_bigtableinstanceautoscaling2.golden.yaml | 10 +- .../bigtableinstanceautoscaling2/_http.log | 234 - ...d_object_bigtableinstancebasic.golden.yaml | 9 +- .../bigtableinstancebasic/_http.log | 62 - ...generated_object_bigtabletable.golden.yaml | 17 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...temanagercertificatemanageddns.golden.yaml | 2 +- ...emanagercertificateselfmanaged.golden.yaml | 2 +- ...rtificatemanagercertificatemap.golden.yaml | 2 +- ...catemanagercertificatemapentry.golden.yaml | 2 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...temanagerdnsauthorization-full.golden.yaml | 2 +- ...anagerdnsauthorization-minimal.golden.yaml | 2 +- ...ificatemanagerdnsauthorization.golden.yaml | 2 +- .../v1beta1/cloudbuildworkerpool/_http.log | 87 +- ...generated_object_httpsfunction.golden.yaml | 18 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 .../v1beta1/cloudidsendpoint/_http.log | 76 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...ed_object_globalcomputeaddress.golden.yaml | 17 +- .../globalcomputeaddress/_http.log | 76 +- ..._object_regionalcomputeaddress.golden.yaml | 19 +- .../regionalcomputeaddress/_http.log | 92 +- ...ject_computediskfromsourcedisk.golden.yaml | 18 +- ...ted_object_regionalcomputedisk.golden.yaml | 22 +- ...erated_object_zonalcomputedisk.golden.yaml | 18 +- ...ct_globalcomputeforwardingrule.golden.yaml | 15 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...lobalcomputeforwardingrulefull.golden.yaml | 47 + .../globalcomputeforwardingrulefull/_http.log | 1502 ++ .../create.yaml | 41 + .../dependencies.yaml | 73 + .../update.yaml | 41 + ...obalcomputeforwardingrulehttps.golden.yaml | 37 + .../_http.log | 2066 +++ .../create.yaml | 30 + .../dependencies.yaml | 158 + .../update.yaml | 30 + ...globalcomputeforwardingrulessl.golden.yaml | 38 + .../globalcomputeforwardingrulessl/_http.log | 1777 ++ .../create.yaml | 31 + .../dependencies.yaml | 135 + .../update.yaml | 31 + ...globalcomputeforwardingruletcp.golden.yaml | 39 + .../globalcomputeforwardingruletcp/_http.log | 1541 ++ .../create.yaml | 32 + .../dependencies.yaml | 66 + .../update.yaml | 32 + ..._regionalcomputeforwardingrule.golden.yaml | 15 +- .../regionalcomputeforwardingrule/_http.log | 94 +- ...ject_regionalforwardingrulepsc.golden.yaml | 1 + .../regionalforwardingrulepsc/_http.log | 96 +- ...bject_globalcomputehealthcheck.golden.yaml | 20 +- ...ect_regionalcomputehealthcheck.golden.yaml | 20 +- ..._generated_object_computeimage.golden.yaml | 6 +- .../compute/v1beta1/computeimage/_http.log | 68 + ...ct_computeinstancebasicexample.golden.yaml | 31 +- .../computeinstancebasicexample/_http.log | 308 +- ...mputeinstancewithencrypteddisk.golden.yaml | 24 +- ...enerated_object_computenetwork.golden.yaml | 3 +- ...erated_object_computenodegroup.golden.yaml | 17 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...ted_object_computenodetemplate.golden.yaml | 17 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...ct_globalcomputesslcertificate.golden.yaml | 41 + .../globalcomputesslcertificate/_http.log | 191 + ..._regionalcomputesslcertificate.golden.yaml | 41 + .../regionalcomputesslcertificate/_http.log | 197 + ...rated_object_computesubnetwork.golden.yaml | 5 +- ...d_object_globaltargethttpproxy.golden.yaml | 2 +- ...object_regionaltargethttpproxy.golden.yaml | 2 +- ...ct_crossregiontargethttpsproxy.golden.yaml | 35 + .../crossregiontargethttpsproxy/_http.log | 911 + ...globaltargethttpsproxy-certmap.golden.yaml | 35 + .../globaltargethttpsproxy-certmap/_http.log | 1214 ++ .../create.yaml | 26 + .../dependencies.yaml | 65 + .../update.yaml | 26 + ..._object_globaltargethttpsproxy.golden.yaml | 35 + .../globaltargethttpsproxy/_http.log | 1221 ++ ...certificatemanagercertificates.golden.yaml | 35 + .../_http.log | 1229 ++ ...targethttpsproxycertificatemap.golden.yaml | 35 + .../_http.log | 1207 ++ ...bject_regionaltargethttpsproxy.golden.yaml | 35 + .../regionaltargethttpsproxy/_http.log | 1182 ++ ...d_object_computetargetsslproxy.golden.yaml | 32 + .../v1beta1/computetargetsslproxy/_http.log | 765 + ...d_object_computetargettcpproxy.golden.yaml | 31 + .../v1beta1/computetargettcpproxy/_http.log | 632 + ...object_computetargetvpngateway.golden.yaml | 2 +- ...d_object_regionalcomputeurlmap.golden.yaml | 87 +- ...rated_object_computevpngateway.golden.yaml | 17 +- ...erated_object_containercluster.golden.yaml | 34 +- .../v1beta1/containercluster/_http.log | 24 + ...rated_object_containernodepool.golden.yaml | 30 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...d_object_containeranalysisnote.golden.yaml | 2 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...containerattachedclusterbasic.golden.yaml} | 19 +- .../_http.log | 264 +- .../create.yaml | 0 .../dependencies.yaml | 0 .../update.yaml | 2 +- ...t_containerattachedclusterfull.golden.yaml | 55 + .../containerattachedclusterfull/_http.log | 691 + .../containerattachedclusterfull/create.yaml | 46 + .../dependencies.yaml | 25 + .../containerattachedclusterfull/update.yaml | 47 + ...dataflowflextemplatejob-direct.golden.yaml | 34 + .../_http.log | 1041 ++ .../create.yaml | 33 + .../dependencies.yaml | 21 + ...t_batchdataflowflextemplatejob.golden.yaml | 13 +- ...reamingdataflowflextemplatejob.golden.yaml | 18 +- .../_http.log | 2 +- .../create.yaml | 2 +- ...eamingdataflowflextemplatejob2.golden.yaml | 14 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...ed_object_edgecontainercluster.golden.yaml | 3 +- ...d_object_edgecontainernodepool.golden.yaml | 2 +- ...ated_object_edgenetworknetwork.golden.yaml | 2 +- ...rated_object_edgenetworksubnet.golden.yaml | 2 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ..._object_firestoredatabase-full.golden.yaml | 34 + .../firestoredatabase-full/_http.log | 353 + .../firestoredatabase-full/create.yaml | 25 + .../firestoredatabase-full/update.yaml | 25 + ...ject_firestoredatabase-minimal.golden.yaml | 32 + .../firestoredatabase-minimal/_http.log | 218 + .../firestoredatabase-minimal/create.yaml | 23 + .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 .../_generated_object_acmfeature.golden.yaml | 2 +- .../_generated_object_mcifeature.golden.yaml | 2 +- .../_generated_object_mcsdfeature.golden.yaml | 2 +- ...erated_object_gkehubmembership.golden.yaml | 4 +- ...rated_object_iamserviceaccount.golden.yaml | 2 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ..._generated_object_kmscryptokey.golden.yaml | 3 +- .../basic/kms/v1beta1/kmscryptokey/_http.log | 16 + .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 .../_generated_object_kmskeyring.golden.yaml | 2 +- ...erated_object_projectlogbucket.golden.yaml | 2 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...d_object_monitoringalertpolicy.golden.yaml | 8 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...nerated_object_monitoringgroup.golden.yaml | 2 +- ..._monitoringnotificationchannel.golden.yaml | 3 +- ...d_object_httpuptimecheckconfig.golden.yaml | 2 +- ...ed_object_tcpuptimecheckconfig.golden.yaml | 3 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...ted_object_networkservicesmesh.golden.yaml | 2 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...ed_object_privatecacapoolbasic.golden.yaml | 2 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...ated_object_privatecacapooliam.golden.yaml | 2 +- ..._generated_object_pubsubschema.golden.yaml | 2 +- ...object_basicpubsubsubscription.golden.yaml | 4 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...ect_bigquerypubsubsubscription.golden.yaml | 6 +- .../_generated_object_pubsubtopic.golden.yaml | 2 +- ...d_object_pubsublitereservation.golden.yaml | 2 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...generated_object_redisinstance.golden.yaml | 15 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...nerated_object_projectinfolder.golden.yaml | 2 +- ..._generated_object_projectinorg.golden.yaml | 2 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...ect_projectmovedfoldertofolder.golden.yaml | 2 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...ted_object_secretmanagersecret.golden.yaml | 2 +- ...ect_secretmanagersecretversion.golden.yaml | 17 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...ct_servicenetworkingconnection.golden.yaml | 2 +- .../servicenetworkingconnection/_http.log | 152 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 .../_generated_object_service.golden.yaml | 2 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...nerated_object_serviceidentity.golden.yaml | 2 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...nerated_object_spannerdatabase.golden.yaml | 4 +- .../_vcr_cassettes/{dcl.yaml => nontf.yaml} | 0 ...nerated_object_spannerinstance.golden.yaml | 7 +- ...sqlinstance-authorizednetworks.golden.yaml | 4 +- .../sqlinstance-authorizednetworks/_http.log | 8 +- .../create.yaml | 2 +- .../update.yaml | 4 +- .../sqlinstance-clone-minimal/_http.log | 1 + .../sqlinstance-encryptionkey/_http.log | 136 +- ...sqlinstance-locationpreference.golden.yaml | 47 + .../sqlinstance-locationpreference/_http.log | 590 + .../create.yaml | 28 + .../update.yaml | 29 + .../sqlinstance-mysql-minimal/_http.log | 2 + .../sqlinstance/sqlinstance-mysql/_http.log | 4 - .../sqlinstance-postgres-minimal/_http.log | 2 + .../sqlinstance-postgres/_http.log | 80 +- .../sqlinstance-privatenetwork/_http.log | 154 +- .../sqlinstance-sqlserver-minimal/_http.log | 2 + .../sqlinstance-sqlserver/_http.log | 4 - ...nerated_object_sqlinstance-ssl.golden.yaml | 48 + .../sqlinstance/sqlinstance-ssl/_http.log | 595 + .../sqlinstance/sqlinstance-ssl/create.yaml | 36 + .../sqlinstance/sqlinstance-ssl/update.yaml | 37 + .../_generated_object_sqluser.golden.yaml | 2 +- .../v1beta1/sqluser/_vcr_cassettes/nontf.yaml | 317 + .../v1beta1/sqluser/_vcr_cassettes/tf.yaml | 497 +- ...ated_object_storagebucketbasic.golden.yaml | 10 +- ...object_storagebucketsoftdelete.golden.yaml | 5 +- ...rated_object_storagebucketzero.golden.yaml | 9 +- ...object_storagenotificationbase.golden.yaml | 2 +- ...object_storagenotificationfull.golden.yaml | 2 +- ...enerated_object_tagkeyorgbasic.golden.yaml | 2 +- ...ated_object_tagkeyprojectbasic.golden.yaml | 2 +- ...generated_object_tagvaluebasic.golden.yaml | 2 +- ...nerated_object_tagvalueproject.golden.yaml | 2 +- .../vertexaidatasetencryptionkey/_http.log | 46 +- .../vertexaiendpointencryptionkey/_http.log | 46 +- .../vertexaiendpointnetwork/_http.log | 76 +- .../_generated_object_folderid.golden.yaml | 2 +- .../_generated_object_projectid.golden.yaml | 12 +- ..._generated_object_forcedestroy.golden.yaml | 6 +- ...d_object_removedefaultnodepool.golden.yaml | 54 +- ...erated_object_externalwithname.golden.yaml | 5 +- ..._object_externalwithpartialuri.golden.yaml | 17 +- ...object_externalwithsubresource.golden.yaml | 4 +- ...object_billingaccountiampolicy.golden.yaml | 2 +- ..._billingaccountiampolicymember.golden.yaml | 2 +- ...d_object_organizationiampolicy.golden.yaml | 2 +- ...ct_organizationiampolicymember.golden.yaml | 2 +- ...rated_object_serviceaccountref.golden.yaml | 2 +- ...ated_object_serviceidentityref.golden.yaml | 2 +- ...enerated_object_sqlinstanceref.golden.yaml | 2 +- ...nerated_object_bigquerydataset.golden.yaml | 26 +- ...nerated_object_pubsubschema#01.golden.yaml | 2 +- ...erated_object_storagebucket#01.golden.yaml | 2 +- ...generated_object_storagebucket.golden.yaml | 11 +- ...ncewithuserspecifiedresourceid.golden.yaml | 2 +- ...object_userspecifiedresourceid.golden.yaml | 16 +- ...resourceidandservergeneratedid.golden.yaml | 2 +- ..._userspecifiedresourceidfordcl.golden.yaml | 2 +- ...bject_networkipcomputeinstance.golden.yaml | 25 +- .../networkipcomputeinstance/_http.log | 102 - ...bject_sensitivevaluefromsecret.golden.yaml | 40 + .../sensitivevaluefromsecret/_http.log | 189 + ...ed_object_sensitivevaluesimple.golden.yaml | 80 + .../sensitivevaluesimple/_http.log | 189 + .../resource-docs/bigquery/bigquerydataset.md | 213 +- .../certificatemanagerdnsauthorization.md | 30 +- .../cloudbuild/cloudbuildworkerpool.md | 2 +- .../compute/computeforwardingrule.md | 105 +- .../dataflow/dataflowflextemplatejob.md | 2 +- .../gkehub/gkehubfeaturemembership.md | 4 +- .../resource-docs/logging/logginglogmetric.md | 2 +- .../monitoring/monitoringdashboard.md | 26 +- scripts/shared-vars-public.sh | 1 + tests/README.VCRTesting.md | 2 +- .../testdata/exceptions/acronyms.txt | 2 - .../testdata/exceptions/missingrefs.txt | 1 - tests/e2e/httplog.go | 6 + tests/e2e/normalize.go | 23 +- .../_object00.yaml | 23 +- .../_object02.yaml | 23 +- .../script.yaml | 2 + tests/e2e/unified_test.go | 48 +- 846 files changed, 73102 insertions(+), 21161 deletions(-) create mode 100644 apis/bigqueryconnection/v1alpha1/bigqueryconnectionconnection_types.go create mode 100644 apis/bigqueryconnection/v1alpha1/doc.go create mode 100644 apis/bigqueryconnection/v1alpha1/groupversion_info.go create mode 100644 apis/bigqueryconnection/v1alpha1/types.generated.go create mode 100644 apis/bigqueryconnection/v1alpha1/zz_generated.deepcopy.go create mode 100644 apis/certificatemanager/v1alpha1/certificatemanagerdnsauthorization_types.go create mode 100644 apis/certificatemanager/v1alpha1/doc.go create mode 100644 apis/certificatemanager/v1alpha1/groupversion_info.go create mode 100644 apis/certificatemanager/v1alpha1/types.generated.go create mode 100644 apis/certificatemanager/v1alpha1/zz_generated.deepcopy.go create mode 100644 apis/certificatemanager/v1beta1/certificatemanagerdnsauthorization_types.go create mode 100644 apis/certificatemanager/v1beta1/doc.go create mode 100644 apis/certificatemanager/v1beta1/groupversion_info.go create mode 100644 apis/certificatemanager/v1beta1/types.generated.go create mode 100644 apis/certificatemanager/v1beta1/zz_generated.deepcopy.go create mode 100644 apis/firestore/v1alpha1/doc.go create mode 100644 apis/firestore/v1alpha1/firestoredatabase_types.go create mode 100644 apis/firestore/v1alpha1/groupversion_info.go create mode 100644 apis/firestore/v1alpha1/types.generated.go create mode 100644 apis/firestore/v1alpha1/zz_generated.deepcopy.go rename config/crds/resources/{apiextensions.k8s.io_v1_customresourcedefinition_securesourcemanagerinstances.securesourcemanager.cnrm.cloud.google.com.yaml => apiextensions.k8s.io_v1_customresourcedefinition_firestoredatabases.firestore.cnrm.cloud.google.com.yaml} (53%) rename pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqluser/_vcr_cassettes/dcl.yaml => dev/ci/periodics/e2e-service-cloudkms (71%) mode change 100644 => 100755 rename dev/tools/controllerbuilder/template/{ => controller}/controller.go (63%) rename dev/tools/controllerbuilder/template/{ => controller}/externalresource.go (61%) create mode 100644 docs/releasenotes/release-1.123.md create mode 100644 mockgcp/generated/mockgcp/firestore/admin/v1/backup.pb.go create mode 100644 mockgcp/generated/mockgcp/firestore/admin/v1/database.pb.go create mode 100644 mockgcp/generated/mockgcp/firestore/admin/v1/field.pb.go create mode 100644 mockgcp/generated/mockgcp/firestore/admin/v1/firestore_admin.pb.go create mode 100644 mockgcp/generated/mockgcp/firestore/admin/v1/firestore_admin.pb.gw.go create mode 100644 mockgcp/generated/mockgcp/firestore/admin/v1/firestore_admin_grpc.pb.go create mode 100644 mockgcp/generated/mockgcp/firestore/admin/v1/index.pb.go create mode 100644 mockgcp/generated/mockgcp/firestore/admin/v1/location.pb.go create mode 100644 mockgcp/generated/mockgcp/firestore/admin/v1/operation.pb.go create mode 100644 mockgcp/generated/mockgcp/firestore/admin/v1/schedule.pb.go create mode 100644 mockgcp/mockcompute/globaltargethttpsproxiesv1.go create mode 100644 mockgcp/mockcompute/globaltargettcpproxyv1.go create mode 100644 mockgcp/mockcompute/regionalsslcertificatesv1.go create mode 100644 mockgcp/mockcompute/regionaltargethttpsproxiesv1.go create mode 100644 mockgcp/mockcompute/targetsslproxyv1.go create mode 100644 mockgcp/mockfirestore/database.go create mode 100644 mockgcp/mockfirestore/service.go rename operator/autopilot-channels/packages/configconnector/{1.119.0 => 1.122.0}/cluster/gcp-identity/0-cnrm-system.yaml (95%) rename operator/autopilot-channels/packages/configconnector/{1.119.0 => 1.122.0}/cluster/workload-identity/0-cnrm-system.yaml (95%) rename operator/autopilot-channels/packages/configconnector/{1.119.0 => 1.122.0}/crds.yaml (92%) rename operator/autopilot-channels/packages/configconnector/{1.119.0 => 1.122.0}/namespaced/0-cnrm-system.yaml (95%) rename operator/autopilot-channels/packages/configconnector/{1.119.0 => 1.122.0}/namespaced/per-namespace-components.yaml (91%) rename operator/channels/packages/configconnector/{1.119.0 => 1.122.0}/cluster/gcp-identity/0-cnrm-system.yaml (96%) rename operator/channels/packages/configconnector/{1.119.0 => 1.122.0}/cluster/workload-identity/0-cnrm-system.yaml (96%) rename operator/channels/packages/configconnector/{1.119.0 => 1.122.0}/crds.yaml (92%) rename operator/channels/packages/configconnector/{1.119.0 => 1.122.0}/namespaced/0-cnrm-system.yaml (96%) rename operator/channels/packages/configconnector/{1.119.0 => 1.122.0}/namespaced/per-namespace-components.yaml (93%) rename pkg/clients/generated/apis/{securesourcemanager => firestore}/v1alpha1/doc.go (86%) create mode 100644 pkg/clients/generated/apis/firestore/v1alpha1/firestoredatabase_types.go rename pkg/clients/generated/apis/{securesourcemanager => firestore}/v1alpha1/register.go (79%) rename pkg/clients/generated/apis/{securesourcemanager => firestore}/v1alpha1/zz_generated.deepcopy.go (60%) delete mode 100644 pkg/clients/generated/apis/securesourcemanager/group.go delete mode 100644 pkg/clients/generated/apis/securesourcemanager/v1alpha1/securesourcemanagerinstance_types.go rename pkg/clients/generated/client/clientset/versioned/typed/{securesourcemanager => firestore}/v1alpha1/doc.go (100%) rename pkg/clients/generated/client/clientset/versioned/typed/{securesourcemanager => firestore}/v1alpha1/fake/doc.go (100%) rename pkg/clients/generated/client/clientset/versioned/typed/{securesourcemanager/v1alpha1/fake/fake_securesourcemanager_client.go => firestore/v1alpha1/fake/fake_firestore_client.go} (74%) create mode 100644 pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/fake/fake_firestoredatabase.go rename pkg/clients/generated/client/clientset/versioned/typed/{securesourcemanager/v1alpha1/securesourcemanager_client.go => firestore/v1alpha1/firestore_client.go} (63%) create mode 100644 pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/firestoredatabase.go rename pkg/clients/generated/client/clientset/versioned/typed/{securesourcemanager => firestore}/v1alpha1/generated_expansion.go (94%) delete mode 100644 pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/fake/fake_securesourcemanagerinstance.go delete mode 100644 pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/securesourcemanagerinstance.go create mode 100644 pkg/controller/direct/bigqueryconnection/connection_controller.go create mode 100644 pkg/controller/direct/bigqueryconnection/connection_externalresource.go create mode 100644 pkg/controller/direct/bigqueryconnection/connection_mapping.go create mode 100644 pkg/controller/direct/bigqueryconnection/mapper.generated.go create mode 100644 pkg/controller/direct/bigquerydatatransfer/bigquerydatatransfer_mappings.go create mode 100644 pkg/controller/direct/bigquerydatatransfer/mapper.generated.go create mode 100644 pkg/controller/direct/compute/roundtrip_test.go create mode 100644 pkg/controller/direct/dataform/roundtrip_test.go create mode 100644 pkg/controller/direct/firestore/client.go create mode 100644 pkg/controller/direct/firestore/firestoredatabase_controller.go create mode 100644 pkg/controller/direct/firestore/firestoredatabase_externalresource.go create mode 100644 pkg/controller/direct/firestore/firestoredatabase_mappings.go create mode 100644 pkg/controller/direct/firestore/mapper.generated.go create mode 100644 pkg/controller/predicate/optin.go rename pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/fullalloydbcluster/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/apikeys/v1alpha1/apikeyskey/apikeyskeybasic/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/artifactregistry/v1beta1/artifactregistryrepository/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigqueryjob/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerytable/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/billingbudgets/v1beta1/billingbudgetsbudget/custombudget/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificatemapentry/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/cloudfunctions/v1beta1/cloudfunctionsfunction/httpsfunction/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/cloudscheduler/v1beta1/cloudschedulerjob/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrule/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/_generated_object_globalcomputeforwardingrulefull.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/create.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/dependencies.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/update.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/_generated_object_globalcomputeforwardingrulehttps.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/create.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/dependencies.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/update.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/_generated_object_globalcomputeforwardingrulessl.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/create.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/dependencies.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/update.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/_generated_object_globalcomputeforwardingruletcp.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/create.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/dependencies.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/update.yaml rename pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodegroup/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodetemplate/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesslcertificate/globalcomputesslcertificate/_generated_object_globalcomputesslcertificate.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesslcertificate/globalcomputesslcertificate/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesslcertificate/regionalcomputesslcertificate/_generated_object_regionalcomputesslcertificate.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesslcertificate/regionalcomputesslcertificate/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/crossregiontargethttpsproxy/_generated_object_crossregiontargethttpsproxy.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/crossregiontargethttpsproxy/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/_generated_object_globaltargethttpsproxy-certmap.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/create.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/dependencies.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/update.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy/_generated_object_globaltargethttpsproxy.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxycertificatemanagercertificates/_generated_object_globaltargethttpsproxycertificatemanagercertificates.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxycertificatemanagercertificates/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxycertificatemap/_generated_object_globaltargethttpsproxycertificatemap.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxycertificatemap/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/regionaltargethttpsproxy/_generated_object_regionaltargethttpsproxy.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/regionaltargethttpsproxy/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargetsslproxy/_generated_object_computetargetsslproxy.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargetsslproxy/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargettcpproxy/_generated_object_computetargettcpproxy.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargettcpproxy/_http.log rename pkg/test/resourcefixture/testdata/basic/container/v1beta1/containernodepool/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/containeranalysis/v1beta1/containeranalysisnote/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/{containerattachedcluster/_generated_object_containerattachedcluster.golden.yaml => containerattachedclusterbasic/_generated_object_containerattachedclusterbasic.golden.yaml} (61%) rename pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/{containerattachedcluster => containerattachedclusterbasic}/_http.log (59%) rename pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/{containerattachedcluster => containerattachedclusterbasic}/create.yaml (100%) rename pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/{containerattachedcluster => containerattachedclusterbasic}/dependencies.yaml (100%) rename pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/{containerattachedcluster => containerattachedclusterbasic}/update.yaml (97%) create mode 100644 pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/_generated_object_containerattachedclusterfull.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/create.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/dependencies.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/update.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob-direct/_generated_object_batchdataflowflextemplatejob-direct.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob-direct/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob-direct/create.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob-direct/dependencies.yaml rename pkg/test/resourcefixture/testdata/basic/dataproc/v1beta1/dataproccluster/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/dlp/v1beta1/dlpstoredinfotype/cloudstoragepathstoredinfotype/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/dns/v1beta1/dnsrecordset/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/eventarc/v1beta1/eventarctrigger/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) create mode 100644 pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-full/_generated_object_firestoredatabase-full.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-full/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-full/create.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-full/update.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-minimal/_generated_object_firestoredatabase-minimal.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-minimal/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-minimal/create.yaml rename pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoreindex/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/iam/v1beta1/iamworkloadidentitypoolprovider/oidcworkloadidentitypoolprovider/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/identityplatform/v1beta1/identityplatformoauthidpconfig/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmscryptokey/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/logging/v1beta1/logginglogview/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/memcache/v1beta1/memcacheinstance/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringalertpolicy/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/networkconnectivity/v1beta1/networkconnectivityhub/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/networkservices/v1beta1/networkservicesgrpcroute/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/osconfig/v1beta1/osconfigguestpolicy/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/privateca/v1beta1/privatecacapool/privatecacapoolbasic/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubsubscription/basicpubsubsubscription/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/pubsublite/v1beta1/pubsublitereservation/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/recaptchaenterprise/v1beta1/recaptchaenterprisekey/androidrecaptchaenterprisekey/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/redis/v1beta1/redisinstance/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectinorg/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/run/v1beta1/runservice/runservicebasic/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/secretmanager/v1beta1/secretmanagersecretversion/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/servicedirectory/v1beta1/servicedirectorynamespace/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/servicenetworking/v1beta1/servicenetworkingconnection/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/serviceusage/v1beta1/service/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/sourcerepo/v1beta1/sourcereporepository/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) rename pkg/test/resourcefixture/testdata/basic/spanner/v1beta1/spannerdatabase/_vcr_cassettes/{dcl.yaml => nontf.yaml} (100%) create mode 100644 pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-locationpreference/_generated_object_sqlinstance-locationpreference.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-locationpreference/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-locationpreference/create.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-locationpreference/update.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-ssl/_generated_object_sqlinstance-ssl.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-ssl/_http.log create mode 100644 pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-ssl/create.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-ssl/update.yaml create mode 100644 pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqluser/_vcr_cassettes/nontf.yaml create mode 100644 pkg/test/resourcefixture/testdata/sensitivefield/sensitivevaluefromsecret/_generated_object_sensitivevaluefromsecret.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/sensitivefield/sensitivevaluefromsecret/_http.log create mode 100644 pkg/test/resourcefixture/testdata/sensitivefield/sensitivevaluesimple/_generated_object_sensitivevaluesimple.golden.yaml create mode 100644 pkg/test/resourcefixture/testdata/sensitivefield/sensitivevaluesimple/_http.log diff --git a/apis/bigqueryconnection/v1alpha1/bigqueryconnectionconnection_types.go b/apis/bigqueryconnection/v1alpha1/bigqueryconnectionconnection_types.go new file mode 100644 index 0000000000..8590d5b0e0 --- /dev/null +++ b/apis/bigqueryconnection/v1alpha1/bigqueryconnectionconnection_types.go @@ -0,0 +1,188 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package v1alpha1 + +import ( + refv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/apis/refs/v1beta1" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/apis/k8s/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +var BigQueryConnectionConnectionGVK = GroupVersion.WithKind("BigQueryConnectionConnection") + +type Parent struct { + // +required + ProjectRef *refv1beta1.ProjectRef `json:"projectRef"` + + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Location field is immutable" + // Immutable. + // +required + Location string `json:"location"` +} + +// BigQueryConnectionConnectionSpec defines the desired state to connect BigQuery to external resources +// +kcc:proto=google.cloud.bigquery.connection.v1.Connection +type BigQueryConnectionConnectionSpec struct { + Parent `json:",inline"` + + // The BigQuery ConnectionID. This is a server-generated ID in the UUID format. + // If not provided, ConfigConnector will create a new Connection and store the UUID in `status.serviceGeneratedID` field. + // + optional + ResourceID *string `json:"resourceID,omitempty"` + + // User provided display name for the connection. + FriendlyName *string `json:"friendlyName,omitempty"` + + // User provided description. + Description *string `json:"description,omitempty"` + + /* NOTYET + // Cloud SQL properties. + CloudSql *CloudSqlProperties `json:"cloudSql,omitempty"` + */ + + /* NOTYET + // Amazon Web Services (AWS) properties. + Aws *AwsProperties `json:"aws,omitempty"` + */ + + /* NOTYET + // Azure properties. + Azure *AzureProperties `json:"azure,omitempty"` + */ + + /* NOTYET + // Cloud Spanner properties. + CloudSpanner *CloudSpannerProperties `json:"cloudSpanner,omitempty"` + */ + + /* NOTYET + // Spark properties. + Spark *SparkProperties `json:"spark,omitempty"` + */ + + /* NOTYET + // Optional. Salesforce DataCloud properties. This field is intended for + // use only by Salesforce partner projects. This field contains properties + // for your Salesforce DataCloud connection. + SalesforceDataCloud *SalesforceDataCloudProperties `json:"salesforceDataCloud,omitempty"` + */ + + // Use Cloud Resource properties. + CloudResourceSpec *CloudResourcePropertiesSpec `json:"cloudResource,omitempty"` +} + +// BigQueryConnectionConnectionStatus defines the config connector machine state of BigQueryConnectionConnection +type BigQueryConnectionConnectionStatus struct { + /* Conditions represent the latest available observations of the + object's current state. */ + Conditions []v1alpha1.Condition `json:"conditions,omitempty"` + + // ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + + // A unique specifier for the BigQueryConnectionConnection resource in GCP. + ExternalRef *string `json:"externalRef,omitempty"` + + // ObservedState is the state of the resource as most recently observed in GCP. + ObservedState *BigQueryConnectionConnectionObservedState `json:"observedState,omitempty"` +} + +// BigQueryConnectionConnectionSpec defines the desired state of BigQueryConnectionConnection +// +kcc:proto=google.cloud.bigquery.connection.v1.Connection +type BigQueryConnectionConnectionObservedState struct { + CloudResource *CloudResourcePropertiesStatus `json:"cloudResource,omitempty"` + + // The display name for the connection. + FriendlyName *string `json:"friendlyName,omitempty"` + + // The description for the connection. + Description *string `json:"description,omitempty"` + + /* + // Cloud SQL properties. + CloudSql *CloudSqlProperties `json:"cloudSql,omitempty"` + + // Amazon Web Services (AWS) properties. + Aws *AwsProperties `json:"aws,omitempty"` + + // Azure properties. + Azure *AzureProperties `json:"azure,omitempty"` + + // Cloud Spanner properties. + CloudSpanner *CloudSpannerProperties `json:"cloudSpanner,omitempty"` + + // Spark properties. + Spark *SparkProperties `json:"spark,omitempty"` + + // Optional. Salesforce DataCloud properties. This field is intended for + // use only by Salesforce partner projects. This field contains properties + // for your Salesforce DataCloud connection. + SalesforceDataCloud *SalesforceDataCloudProperties `json:"salesforceDataCloud,omitempty"` + */ + + // Output only. True, if credential is configured for this connection. + HasCredential *bool `json:"hasCredential,omitempty"` +} + +type CloudResourcePropertiesSpec struct{} + +// +kcc:proto=google.cloud.bigquery.connection.v1.CloudResourceProperties +type CloudResourcePropertiesStatus struct { + // Output only. The account ID of the service created for the purpose of this + // connection. + // + // The service account does not have any permissions associated with it + // when it is created. After creation, customers delegate permissions + // to the service account. When the connection is used in the context of an + // operation in BigQuery, the service account will be used to connect to the + // desired resources in GCP. + // + // The account ID is in the form of: + // @gcp-sa-bigquery-cloudresource.iam.gserviceaccount.com + ServiceAccountID *string `json:"serviceAccountID,omitempty"` +} + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:resource:categories=gcp,shortName=gcpbigqueryconnectionconnection;gcpbigqueryconnectionconnections +// +kubebuilder:subresource:status +// +kubebuilder:metadata:labels="cnrm.cloud.google.com/managed-by-kcc=true";"cnrm.cloud.google.com/system=true" +// +kubebuilder:printcolumn:name="Age",JSONPath=".metadata.creationTimestamp",type="date" +// +kubebuilder:printcolumn:name="Ready",JSONPath=".status.conditions[?(@.type=='Ready')].status",type="string",description="When 'True', the most recent reconcile of the resource succeeded" +// +kubebuilder:printcolumn:name="Status",JSONPath=".status.conditions[?(@.type=='Ready')].reason",type="string",description="The reason for the value in 'Ready'" +// +kubebuilder:printcolumn:name="Status Age",JSONPath=".status.conditions[?(@.type=='Ready')].lastTransitionTime",type="date",description="The last transition time for the value in 'Status'" + +// BigQueryConnectionConnection is the Schema for the BigQueryConnectionConnection API +// +k8s:openapi-gen=true +type BigQueryConnectionConnection struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec BigQueryConnectionConnectionSpec `json:"spec,omitempty"` + Status BigQueryConnectionConnectionStatus `json:"status,omitempty"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// BigQueryConnectionConnectionList contains a list of BigQueryConnectionConnection +type BigQueryConnectionConnectionList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []BigQueryConnectionConnection `json:"items"` +} + +func init() { + SchemeBuilder.Register(&BigQueryConnectionConnection{}, &BigQueryConnectionConnectionList{}) +} diff --git a/apis/bigqueryconnection/v1alpha1/doc.go b/apis/bigqueryconnection/v1alpha1/doc.go new file mode 100644 index 0000000000..dbb5ea9d8e --- /dev/null +++ b/apis/bigqueryconnection/v1alpha1/doc.go @@ -0,0 +1,16 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +kcc:proto=google.cloud.bigquery.connection.v1 +package v1alpha1 diff --git a/apis/bigqueryconnection/v1alpha1/groupversion_info.go b/apis/bigqueryconnection/v1alpha1/groupversion_info.go new file mode 100644 index 0000000000..e4cd7a75f6 --- /dev/null +++ b/apis/bigqueryconnection/v1alpha1/groupversion_info.go @@ -0,0 +1,33 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +kubebuilder:object:generate=true +// +groupName=bigqueryconnection.cnrm.cloud.google.com +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +var ( + // GroupVersion is group version used to register these objects + GroupVersion = schema.GroupVersion{Group: "bigqueryconnection.cnrm.cloud.google.com", Version: "v1alpha1"} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/bigqueryconnection/v1alpha1/types.generated.go b/apis/bigqueryconnection/v1alpha1/types.generated.go new file mode 100644 index 0000000000..5d6c5c4773 --- /dev/null +++ b/apis/bigqueryconnection/v1alpha1/types.generated.go @@ -0,0 +1,275 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package v1alpha1 + +// +kcc:proto=google.cloud.bigquery.connection.v1.AwsAccessRole +type AwsAccessRole struct { + // The user’s AWS IAM Role that trusts the Google-owned AWS IAM user + // Connection. + IamRoleID *string `json:"iamRoleID,omitempty"` + + // A unique Google-owned and Google-generated identity for the Connection. + // This identity will be used to access the user's AWS IAM Role. + Identity *string `json:"identity,omitempty"` +} + +// +kcc:proto=google.cloud.bigquery.connection.v1.AwsCrossAccountRole +type AwsCrossAccountRole struct { + // The user’s AWS IAM Role that trusts the Google-owned AWS IAM user + // Connection. + IamRoleID *string `json:"iamRoleID,omitempty"` + + // Output only. Google-owned AWS IAM User for a Connection. + IamUserID *string `json:"iamUserID,omitempty"` + + // Output only. A Google-generated id for representing Connection’s identity + // in AWS. External Id is also used for preventing the Confused Deputy + // Problem. See + // https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html + ExternalID *string `json:"externalID,omitempty"` +} + +// +kcc:proto=google.cloud.bigquery.connection.v1.AwsProperties +type AwsProperties struct { + // Authentication using Google owned AWS IAM user's access key to assume + // into customer's AWS IAM Role. + // Deprecated, do not use. + CrossAccountRole *AwsCrossAccountRole `json:"crossAccountRole,omitempty"` + + // Authentication using Google owned service account to assume into + // customer's AWS IAM Role. + AccessRole *AwsAccessRole `json:"accessRole,omitempty"` +} + +// +kcc:proto=google.cloud.bigquery.connection.v1.AzureProperties +type AzureProperties struct { + // Output only. The name of the Azure Active Directory Application. + Application *string `json:"application,omitempty"` + + // Output only. The client id of the Azure Active Directory Application. + ClientID *string `json:"clientID,omitempty"` + + // Output only. The object id of the Azure Active Directory Application. + ObjectID *string `json:"objectID,omitempty"` + + // The id of customer's directory that host the data. + CustomerTenantID *string `json:"customerTenantID,omitempty"` + + // The URL user will be redirected to after granting consent during connection + // setup. + RedirectUri *string `json:"redirectUri,omitempty"` + + // The client ID of the user's Azure Active Directory Application used for a + // federated connection. + FederatedApplicationClientID *string `json:"federatedApplicationClientID,omitempty"` + + // Output only. A unique Google-owned and Google-generated identity for the + // Connection. This identity will be used to access the user's Azure Active + // Directory Application. + Identity *string `json:"identity,omitempty"` +} + +// +kcc:proto=google.cloud.bigquery.connection.v1.CloudResourceProperties +type CloudResourceProperties struct { + // Output only. The account ID of the service created for the purpose of this + // connection. + // + // The service account does not have any permissions associated with it + // when it is created. After creation, customers delegate permissions + // to the service account. When the connection is used in the context of an + // operation in BigQuery, the service account will be used to connect to the + // desired resources in GCP. + // + // The account ID is in the form of: + // @gcp-sa-bigquery-cloudresource.iam.gserviceaccount.com + ServiceAccountID *string `json:"serviceAccountID,omitempty"` +} + +// +kcc:proto=google.cloud.bigquery.connection.v1.CloudSpannerProperties +type CloudSpannerProperties struct { + // Cloud Spanner database in the form `project/instance/database' + Database *string `json:"database,omitempty"` + + // If parallelism should be used when reading from Cloud Spanner + UseParallelism *bool `json:"useParallelism,omitempty"` + + // Allows setting max parallelism per query when executing on Spanner + // independent compute resources. If unspecified, default values of + // parallelism are chosen that are dependent on the Cloud Spanner instance + // configuration. + // + // REQUIRES: `use_parallelism` must be set. + // REQUIRES: Either `use_data_boost` or `use_serverless_analytics` must be + // set. + MaxParallelism *int32 `json:"maxParallelism,omitempty"` + + // If the serverless analytics service should be used to read data from Cloud + // Spanner. + // Note: `use_parallelism` must be set when using serverless analytics. + UseServerlessAnalytics *bool `json:"useServerlessAnalytics,omitempty"` + + // If set, the request will be executed via Spanner independent compute + // resources. + // REQUIRES: `use_parallelism` must be set. + // + // NOTE: `use_serverless_analytics` will be deprecated. Prefer + // `use_data_boost` over `use_serverless_analytics`. + UseDataBoost *bool `json:"useDataBoost,omitempty"` + + // Optional. Cloud Spanner database role for fine-grained access control. + // The Cloud Spanner admin should have provisioned the database role with + // appropriate permissions, such as `SELECT` and `INSERT`. Other users should + // only use roles provided by their Cloud Spanner admins. + // + // For more details, see [About fine-grained access control] + // (https://cloud.google.com/spanner/docs/fgac-about). + // + // REQUIRES: The database role name must start with a letter, and can only + // contain letters, numbers, and underscores. + DatabaseRole *string `json:"databaseRole,omitempty"` +} + +// +kcc:proto=google.cloud.bigquery.connection.v1.CloudSqlCredential +type CloudSqlCredential struct { + // The username for the credential. + Username *string `json:"username,omitempty"` + + // The password for the credential. + Password *string `json:"password,omitempty"` +} + +// +kcc:proto=google.cloud.bigquery.connection.v1.CloudSqlProperties +type CloudSqlProperties struct { + // Cloud SQL instance ID in the form `project:location:instance`. + InstanceID *string `json:"instanceID,omitempty"` + + // Database name. + Database *string `json:"database,omitempty"` + + // Type of the Cloud SQL database. + Type *string `json:"type,omitempty"` + + // Input only. Cloud SQL credential. + Credential *CloudSqlCredential `json:"credential,omitempty"` + + // Output only. The account ID of the service used for the purpose of this + // connection. + // + // When the connection is used in the context of an operation in + // BigQuery, this service account will serve as the identity being used for + // connecting to the CloudSQL instance specified in this connection. + ServiceAccountID *string `json:"serviceAccountID,omitempty"` +} + +// +kcc:proto=google.cloud.bigquery.connection.v1.Connection +type Connection struct { + // The resource name of the connection in the form of: + // `projects/{project_id}/locations/{location_id}/connections/{connection_id}` + Name *string `json:"name,omitempty"` + + // User provided display name for the connection. + FriendlyName *string `json:"friendlyName,omitempty"` + + // User provided description. + Description *string `json:"description,omitempty"` + + // Cloud SQL properties. + CloudSql *CloudSqlProperties `json:"cloudSql,omitempty"` + + // Amazon Web Services (AWS) properties. + Aws *AwsProperties `json:"aws,omitempty"` + + // Azure properties. + Azure *AzureProperties `json:"azure,omitempty"` + + // Cloud Spanner properties. + CloudSpanner *CloudSpannerProperties `json:"cloudSpanner,omitempty"` + + // Cloud Resource properties. + CloudResource *CloudResourceProperties `json:"cloudResource,omitempty"` + + // Spark properties. + Spark *SparkProperties `json:"spark,omitempty"` + + // Optional. Salesforce DataCloud properties. This field is intended for + // use only by Salesforce partner projects. This field contains properties + // for your Salesforce DataCloud connection. + SalesforceDataCloud *SalesforceDataCloudProperties `json:"salesforceDataCloud,omitempty"` + + // Output only. The creation timestamp of the connection. + CreationTime *int64 `json:"creationTime,omitempty"` + + // Output only. The last update timestamp of the connection. + LastModifiedTime *int64 `json:"lastModifiedTime,omitempty"` + + // Output only. True, if credential is configured for this connection. + HasCredential *bool `json:"hasCredential,omitempty"` +} + +// +kcc:proto=google.cloud.bigquery.connection.v1.MetastoreServiceConfig +type MetastoreServiceConfig struct { + // Optional. Resource name of an existing Dataproc Metastore service. + // + // Example: + // + // * `projects/[project_id]/locations/[region]/services/[service_id]` + MetastoreService *string `json:"metastoreService,omitempty"` +} + +// +kcc:proto=google.cloud.bigquery.connection.v1.SalesforceDataCloudProperties +type SalesforceDataCloudProperties struct { + // The URL to the user's Salesforce DataCloud instance. + InstanceUri *string `json:"instanceUri,omitempty"` + + // Output only. A unique Google-owned and Google-generated service account + // identity for the connection. + Identity *string `json:"identity,omitempty"` + + // The ID of the user's Salesforce tenant. + TenantID *string `json:"tenantID,omitempty"` +} + +// +kcc:proto=google.cloud.bigquery.connection.v1.SparkHistoryServerConfig +type SparkHistoryServerConfig struct { + // Optional. Resource name of an existing Dataproc Cluster to act as a Spark + // History Server for the connection. + // + // Example: + // + // * `projects/[project_id]/regions/[region]/clusters/[cluster_name]` + DataprocCluster *string `json:"dataprocCluster,omitempty"` +} + +// +kcc:proto=google.cloud.bigquery.connection.v1.SparkProperties +type SparkProperties struct { + // Output only. The account ID of the service created for the purpose of this + // connection. + // + // The service account does not have any permissions associated with it when + // it is created. After creation, customers delegate permissions to the + // service account. When the connection is used in the context of a stored + // procedure for Apache Spark in BigQuery, the service account is used to + // connect to the desired resources in Google Cloud. + // + // The account ID is in the form of: + // bqcx--@gcp-sa-bigquery-consp.iam.gserviceaccount.com + ServiceAccountID *string `json:"serviceAccountID,omitempty"` + + // Optional. Dataproc Metastore Service configuration for the connection. + MetastoreServiceConfig *MetastoreServiceConfig `json:"metastoreServiceConfig,omitempty"` + + // Optional. Spark History Server configuration for the connection. + SparkHistoryServerConfig *SparkHistoryServerConfig `json:"sparkHistoryServerConfig,omitempty"` +} diff --git a/apis/bigqueryconnection/v1alpha1/zz_generated.deepcopy.go b/apis/bigqueryconnection/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000000..0c40fe4002 --- /dev/null +++ b/apis/bigqueryconnection/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,671 @@ +//go:build !ignore_autogenerated + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/GoogleCloudPlatform/k8s-config-connector/apis/refs/v1beta1" + k8sv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/apis/k8s/v1alpha1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AwsAccessRole) DeepCopyInto(out *AwsAccessRole) { + *out = *in + if in.IamRoleID != nil { + in, out := &in.IamRoleID, &out.IamRoleID + *out = new(string) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AwsAccessRole. +func (in *AwsAccessRole) DeepCopy() *AwsAccessRole { + if in == nil { + return nil + } + out := new(AwsAccessRole) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AwsCrossAccountRole) DeepCopyInto(out *AwsCrossAccountRole) { + *out = *in + if in.IamRoleID != nil { + in, out := &in.IamRoleID, &out.IamRoleID + *out = new(string) + **out = **in + } + if in.IamUserID != nil { + in, out := &in.IamUserID, &out.IamUserID + *out = new(string) + **out = **in + } + if in.ExternalID != nil { + in, out := &in.ExternalID, &out.ExternalID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AwsCrossAccountRole. +func (in *AwsCrossAccountRole) DeepCopy() *AwsCrossAccountRole { + if in == nil { + return nil + } + out := new(AwsCrossAccountRole) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AwsProperties) DeepCopyInto(out *AwsProperties) { + *out = *in + if in.CrossAccountRole != nil { + in, out := &in.CrossAccountRole, &out.CrossAccountRole + *out = new(AwsCrossAccountRole) + (*in).DeepCopyInto(*out) + } + if in.AccessRole != nil { + in, out := &in.AccessRole, &out.AccessRole + *out = new(AwsAccessRole) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AwsProperties. +func (in *AwsProperties) DeepCopy() *AwsProperties { + if in == nil { + return nil + } + out := new(AwsProperties) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AzureProperties) DeepCopyInto(out *AzureProperties) { + *out = *in + if in.Application != nil { + in, out := &in.Application, &out.Application + *out = new(string) + **out = **in + } + if in.ClientID != nil { + in, out := &in.ClientID, &out.ClientID + *out = new(string) + **out = **in + } + if in.ObjectID != nil { + in, out := &in.ObjectID, &out.ObjectID + *out = new(string) + **out = **in + } + if in.CustomerTenantID != nil { + in, out := &in.CustomerTenantID, &out.CustomerTenantID + *out = new(string) + **out = **in + } + if in.RedirectUri != nil { + in, out := &in.RedirectUri, &out.RedirectUri + *out = new(string) + **out = **in + } + if in.FederatedApplicationClientID != nil { + in, out := &in.FederatedApplicationClientID, &out.FederatedApplicationClientID + *out = new(string) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureProperties. +func (in *AzureProperties) DeepCopy() *AzureProperties { + if in == nil { + return nil + } + out := new(AzureProperties) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BigQueryConnectionConnection) DeepCopyInto(out *BigQueryConnectionConnection) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BigQueryConnectionConnection. +func (in *BigQueryConnectionConnection) DeepCopy() *BigQueryConnectionConnection { + if in == nil { + return nil + } + out := new(BigQueryConnectionConnection) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BigQueryConnectionConnection) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BigQueryConnectionConnectionList) DeepCopyInto(out *BigQueryConnectionConnectionList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]BigQueryConnectionConnection, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BigQueryConnectionConnectionList. +func (in *BigQueryConnectionConnectionList) DeepCopy() *BigQueryConnectionConnectionList { + if in == nil { + return nil + } + out := new(BigQueryConnectionConnectionList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BigQueryConnectionConnectionList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BigQueryConnectionConnectionObservedState) DeepCopyInto(out *BigQueryConnectionConnectionObservedState) { + *out = *in + if in.CloudResource != nil { + in, out := &in.CloudResource, &out.CloudResource + *out = new(CloudResourcePropertiesStatus) + (*in).DeepCopyInto(*out) + } + if in.FriendlyName != nil { + in, out := &in.FriendlyName, &out.FriendlyName + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.HasCredential != nil { + in, out := &in.HasCredential, &out.HasCredential + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BigQueryConnectionConnectionObservedState. +func (in *BigQueryConnectionConnectionObservedState) DeepCopy() *BigQueryConnectionConnectionObservedState { + if in == nil { + return nil + } + out := new(BigQueryConnectionConnectionObservedState) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BigQueryConnectionConnectionSpec) DeepCopyInto(out *BigQueryConnectionConnectionSpec) { + *out = *in + in.Parent.DeepCopyInto(&out.Parent) + if in.ResourceID != nil { + in, out := &in.ResourceID, &out.ResourceID + *out = new(string) + **out = **in + } + if in.FriendlyName != nil { + in, out := &in.FriendlyName, &out.FriendlyName + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.CloudResourceSpec != nil { + in, out := &in.CloudResourceSpec, &out.CloudResourceSpec + *out = new(CloudResourcePropertiesSpec) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BigQueryConnectionConnectionSpec. +func (in *BigQueryConnectionConnectionSpec) DeepCopy() *BigQueryConnectionConnectionSpec { + if in == nil { + return nil + } + out := new(BigQueryConnectionConnectionSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BigQueryConnectionConnectionStatus) DeepCopyInto(out *BigQueryConnectionConnectionStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]k8sv1alpha1.Condition, len(*in)) + copy(*out, *in) + } + if in.ObservedGeneration != nil { + in, out := &in.ObservedGeneration, &out.ObservedGeneration + *out = new(int64) + **out = **in + } + if in.ExternalRef != nil { + in, out := &in.ExternalRef, &out.ExternalRef + *out = new(string) + **out = **in + } + if in.ObservedState != nil { + in, out := &in.ObservedState, &out.ObservedState + *out = new(BigQueryConnectionConnectionObservedState) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BigQueryConnectionConnectionStatus. +func (in *BigQueryConnectionConnectionStatus) DeepCopy() *BigQueryConnectionConnectionStatus { + if in == nil { + return nil + } + out := new(BigQueryConnectionConnectionStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudResourceProperties) DeepCopyInto(out *CloudResourceProperties) { + *out = *in + if in.ServiceAccountID != nil { + in, out := &in.ServiceAccountID, &out.ServiceAccountID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudResourceProperties. +func (in *CloudResourceProperties) DeepCopy() *CloudResourceProperties { + if in == nil { + return nil + } + out := new(CloudResourceProperties) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudResourcePropertiesSpec) DeepCopyInto(out *CloudResourcePropertiesSpec) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudResourcePropertiesSpec. +func (in *CloudResourcePropertiesSpec) DeepCopy() *CloudResourcePropertiesSpec { + if in == nil { + return nil + } + out := new(CloudResourcePropertiesSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudResourcePropertiesStatus) DeepCopyInto(out *CloudResourcePropertiesStatus) { + *out = *in + if in.ServiceAccountID != nil { + in, out := &in.ServiceAccountID, &out.ServiceAccountID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudResourcePropertiesStatus. +func (in *CloudResourcePropertiesStatus) DeepCopy() *CloudResourcePropertiesStatus { + if in == nil { + return nil + } + out := new(CloudResourcePropertiesStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudSpannerProperties) DeepCopyInto(out *CloudSpannerProperties) { + *out = *in + if in.Database != nil { + in, out := &in.Database, &out.Database + *out = new(string) + **out = **in + } + if in.UseParallelism != nil { + in, out := &in.UseParallelism, &out.UseParallelism + *out = new(bool) + **out = **in + } + if in.MaxParallelism != nil { + in, out := &in.MaxParallelism, &out.MaxParallelism + *out = new(int32) + **out = **in + } + if in.UseServerlessAnalytics != nil { + in, out := &in.UseServerlessAnalytics, &out.UseServerlessAnalytics + *out = new(bool) + **out = **in + } + if in.UseDataBoost != nil { + in, out := &in.UseDataBoost, &out.UseDataBoost + *out = new(bool) + **out = **in + } + if in.DatabaseRole != nil { + in, out := &in.DatabaseRole, &out.DatabaseRole + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudSpannerProperties. +func (in *CloudSpannerProperties) DeepCopy() *CloudSpannerProperties { + if in == nil { + return nil + } + out := new(CloudSpannerProperties) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudSqlCredential) DeepCopyInto(out *CloudSqlCredential) { + *out = *in + if in.Username != nil { + in, out := &in.Username, &out.Username + *out = new(string) + **out = **in + } + if in.Password != nil { + in, out := &in.Password, &out.Password + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudSqlCredential. +func (in *CloudSqlCredential) DeepCopy() *CloudSqlCredential { + if in == nil { + return nil + } + out := new(CloudSqlCredential) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudSqlProperties) DeepCopyInto(out *CloudSqlProperties) { + *out = *in + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.Database != nil { + in, out := &in.Database, &out.Database + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Credential != nil { + in, out := &in.Credential, &out.Credential + *out = new(CloudSqlCredential) + (*in).DeepCopyInto(*out) + } + if in.ServiceAccountID != nil { + in, out := &in.ServiceAccountID, &out.ServiceAccountID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudSqlProperties. +func (in *CloudSqlProperties) DeepCopy() *CloudSqlProperties { + if in == nil { + return nil + } + out := new(CloudSqlProperties) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Connection) DeepCopyInto(out *Connection) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.FriendlyName != nil { + in, out := &in.FriendlyName, &out.FriendlyName + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.CloudSql != nil { + in, out := &in.CloudSql, &out.CloudSql + *out = new(CloudSqlProperties) + (*in).DeepCopyInto(*out) + } + if in.Aws != nil { + in, out := &in.Aws, &out.Aws + *out = new(AwsProperties) + (*in).DeepCopyInto(*out) + } + if in.Azure != nil { + in, out := &in.Azure, &out.Azure + *out = new(AzureProperties) + (*in).DeepCopyInto(*out) + } + if in.CloudSpanner != nil { + in, out := &in.CloudSpanner, &out.CloudSpanner + *out = new(CloudSpannerProperties) + (*in).DeepCopyInto(*out) + } + if in.CloudResource != nil { + in, out := &in.CloudResource, &out.CloudResource + *out = new(CloudResourceProperties) + (*in).DeepCopyInto(*out) + } + if in.Spark != nil { + in, out := &in.Spark, &out.Spark + *out = new(SparkProperties) + (*in).DeepCopyInto(*out) + } + if in.SalesforceDataCloud != nil { + in, out := &in.SalesforceDataCloud, &out.SalesforceDataCloud + *out = new(SalesforceDataCloudProperties) + (*in).DeepCopyInto(*out) + } + if in.CreationTime != nil { + in, out := &in.CreationTime, &out.CreationTime + *out = new(int64) + **out = **in + } + if in.LastModifiedTime != nil { + in, out := &in.LastModifiedTime, &out.LastModifiedTime + *out = new(int64) + **out = **in + } + if in.HasCredential != nil { + in, out := &in.HasCredential, &out.HasCredential + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Connection. +func (in *Connection) DeepCopy() *Connection { + if in == nil { + return nil + } + out := new(Connection) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MetastoreServiceConfig) DeepCopyInto(out *MetastoreServiceConfig) { + *out = *in + if in.MetastoreService != nil { + in, out := &in.MetastoreService, &out.MetastoreService + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetastoreServiceConfig. +func (in *MetastoreServiceConfig) DeepCopy() *MetastoreServiceConfig { + if in == nil { + return nil + } + out := new(MetastoreServiceConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Parent) DeepCopyInto(out *Parent) { + *out = *in + if in.ProjectRef != nil { + in, out := &in.ProjectRef, &out.ProjectRef + *out = new(v1beta1.ProjectRef) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Parent. +func (in *Parent) DeepCopy() *Parent { + if in == nil { + return nil + } + out := new(Parent) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SalesforceDataCloudProperties) DeepCopyInto(out *SalesforceDataCloudProperties) { + *out = *in + if in.InstanceUri != nil { + in, out := &in.InstanceUri, &out.InstanceUri + *out = new(string) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(string) + **out = **in + } + if in.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SalesforceDataCloudProperties. +func (in *SalesforceDataCloudProperties) DeepCopy() *SalesforceDataCloudProperties { + if in == nil { + return nil + } + out := new(SalesforceDataCloudProperties) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SparkHistoryServerConfig) DeepCopyInto(out *SparkHistoryServerConfig) { + *out = *in + if in.DataprocCluster != nil { + in, out := &in.DataprocCluster, &out.DataprocCluster + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SparkHistoryServerConfig. +func (in *SparkHistoryServerConfig) DeepCopy() *SparkHistoryServerConfig { + if in == nil { + return nil + } + out := new(SparkHistoryServerConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SparkProperties) DeepCopyInto(out *SparkProperties) { + *out = *in + if in.ServiceAccountID != nil { + in, out := &in.ServiceAccountID, &out.ServiceAccountID + *out = new(string) + **out = **in + } + if in.MetastoreServiceConfig != nil { + in, out := &in.MetastoreServiceConfig, &out.MetastoreServiceConfig + *out = new(MetastoreServiceConfig) + (*in).DeepCopyInto(*out) + } + if in.SparkHistoryServerConfig != nil { + in, out := &in.SparkHistoryServerConfig, &out.SparkHistoryServerConfig + *out = new(SparkHistoryServerConfig) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SparkProperties. +func (in *SparkProperties) DeepCopy() *SparkProperties { + if in == nil { + return nil + } + out := new(SparkProperties) + in.DeepCopyInto(out) + return out +} diff --git a/apis/certificatemanager/v1alpha1/certificatemanagerdnsauthorization_types.go b/apis/certificatemanager/v1alpha1/certificatemanagerdnsauthorization_types.go new file mode 100644 index 0000000000..79dd69887b --- /dev/null +++ b/apis/certificatemanager/v1alpha1/certificatemanagerdnsauthorization_types.go @@ -0,0 +1,131 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package v1alpha1 + +import ( + refs "github.com/GoogleCloudPlatform/k8s-config-connector/apis/refs/v1beta1" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/k8s/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +var CertificateManagerDNSAuthorizationGVK = GroupVersion.WithKind("CertificateManagerDNSAuthorization") + +// CertificateManagerDNSAuthorizationSpec defines the desired state of CertificateManagerDNSAuthorization +// +kcc:proto=google.cloud.certificatemanager.v1.DnsAuthorization +type CertificateManagerDNSAuthorizationSpec struct { + /* A human-readable description of the resource. */ + // +optional + Description *string `json:"description,omitempty"` + + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Domain field is immutable" + /* Immutable. A domain which is being authorized. A DnsAuthorization resource covers a + single domain and its wildcard, e.g. authorization for "example.com" can + be used to issue certificates for "example.com" and "*.example.com". */ + // +required + Domain string `json:"domain"` + + /* The project that this resource belongs to. */ + // +required + ProjectRef refs.ProjectRef `json:"projectRef"` + + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ResourceID field is immutable" + /* Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default. */ + // +optional + ResourceID *string `json:"resourceID,omitempty"` +} + +type DnsauthorizationDnsResourceRecordStatus struct { + /* Data of the DNS Resource Record. */ + // +optional + Data *string `json:"data,omitempty"` + + /* Fully qualified name of the DNS Resource Record. + E.g. '_acme-challenge.example.com'. */ + // +optional + Name *string `json:"name,omitempty"` + + /* Type of the DNS Resource Record. */ + // +optional + Type *string `json:"type,omitempty"` +} + +// CertificateManagerDNSAuthorizationStatus defines the config connector machine state of CertificateManagerDNSAuthorization +type CertificateManagerDNSAuthorizationStatus struct { + /* Conditions represent the latest available observations of the + CertificateManagerDNSAuthorization's current state. */ + Conditions []v1alpha1.Condition `json:"conditions,omitempty"` + /* The structure describing the DNS Resource Record that needs to be added + to DNS configuration for the authorization to be usable by + certificate. */ + // +optional + DnsResourceRecord []DnsauthorizationDnsResourceRecordStatus `json:"dnsResourceRecord,omitempty"` + + /* ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. */ + // +optional + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + + /* NOTYET + // A unique specifier for the CertificateManagerDNSAuthorization resource in GCP. + // +optional + ExternalRef *string `json:"externalRef,omitempty"` + */ + + /* NOTYET + // ObservedState is the state of the resource as most recently observed in GCP. + // +optional + ObservedState *CertificateManagerDNSAuthorizationObservedState `json:"observedState,omitempty"` + */ +} + +/* NOTYET +// CertificateManagerDNSAuthorizationSpec defines the desired state of CertificateManagerDNSAuthorization +// +kcc:proto=google.cloud.certificatemanager.v1.DnsAuthorization +type CertificateManagerDNSAuthorizationObservedState struct { +} +*/ + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:resource:categories=gcp,shortName=gcpcertificatemanagerdnsauthorization;gcpcertificatemanagerdnsauthorizations +// +kubebuilder:subresource:status +// +kubebuilder:metadata:labels="cnrm.cloud.google.com/managed-by-kcc=true";"cnrm.cloud.google.com/system=true" +// +kubebuilder:printcolumn:name="Age",JSONPath=".metadata.creationTimestamp",type="date" +// +kubebuilder:printcolumn:name="Ready",JSONPath=".status.conditions[?(@.type=='Ready')].status",type="string",description="When 'True', the most recent reconcile of the resource succeeded" +// +kubebuilder:printcolumn:name="Status",JSONPath=".status.conditions[?(@.type=='Ready')].reason",type="string",description="The reason for the value in 'Ready'" +// +kubebuilder:printcolumn:name="Status Age",JSONPath=".status.conditions[?(@.type=='Ready')].lastTransitionTime",type="date",description="The last transition time for the value in 'Status'" +// +kubebuilder:metadata:labels="cnrm.cloud.google.com/managed-by-kcc=true";"cnrm.cloud.google.com/tf2crd=true" + +// CertificateManagerDNSAuthorization is the Schema for the CertificateManagerDNSAuthorization API +// +k8s:openapi-gen=true +type CertificateManagerDNSAuthorization struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + // +required + Spec CertificateManagerDNSAuthorizationSpec `json:"spec,omitempty"` + Status CertificateManagerDNSAuthorizationStatus `json:"status,omitempty"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// CertificateManagerDNSAuthorizationList contains a list of CertificateManagerDNSAuthorization +type CertificateManagerDNSAuthorizationList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []CertificateManagerDNSAuthorization `json:"items"` +} + +func init() { + SchemeBuilder.Register(&CertificateManagerDNSAuthorization{}, &CertificateManagerDNSAuthorizationList{}) +} diff --git a/apis/certificatemanager/v1alpha1/doc.go b/apis/certificatemanager/v1alpha1/doc.go new file mode 100644 index 0000000000..0cfe93f686 --- /dev/null +++ b/apis/certificatemanager/v1alpha1/doc.go @@ -0,0 +1,15 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package v1alpha1 diff --git a/apis/certificatemanager/v1alpha1/groupversion_info.go b/apis/certificatemanager/v1alpha1/groupversion_info.go new file mode 100644 index 0000000000..a870837201 --- /dev/null +++ b/apis/certificatemanager/v1alpha1/groupversion_info.go @@ -0,0 +1,33 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +kubebuilder:object:generate=true +// +groupName=certificatemanager.cnrm.cloud.google.com +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +var ( + // GroupVersion is group version used to register these objects + GroupVersion = schema.GroupVersion{Group: "certificatemanager.cnrm.cloud.google.com", Version: "v1alpha1"} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/certificatemanager/v1alpha1/types.generated.go b/apis/certificatemanager/v1alpha1/types.generated.go new file mode 100644 index 0000000000..fb5b1b9abe --- /dev/null +++ b/apis/certificatemanager/v1alpha1/types.generated.go @@ -0,0 +1,340 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package v1alpha1 + +// +kcc:proto=google.cloud.certificatemanager.v1.Certificate +type Certificate struct { + // A user-defined name of the certificate. Certificate names must be unique + // globally and match pattern `projects/*/locations/*/certificates/*`. + Name *string `json:"name,omitempty"` + + // One or more paragraphs of text description of a certificate. + Description *string `json:"description,omitempty"` + + // Output only. The creation timestamp of a Certificate. + CreateTime *string `json:"createTime,omitempty"` + + // Output only. The last update timestamp of a Certificate. + UpdateTime *string `json:"updateTime,omitempty"` + + // Set of labels associated with a Certificate. + Labels map[string]string `json:"labels,omitempty"` + + // If set, defines data of a self-managed certificate. + SelfManaged *Certificate_SelfManagedCertificate `json:"selfManaged,omitempty"` + + // If set, contains configuration and state of a managed certificate. + Managed *Certificate_ManagedCertificate `json:"managed,omitempty"` + + // Output only. The list of Subject Alternative Names of dnsName type defined + // in the certificate (see RFC 5280 4.2.1.6). Managed certificates that + // haven't been provisioned yet have this field populated with a value of the + // managed.domains field. + SanDnsnames []string `json:"sanDnsnames,omitempty"` + + // Output only. The PEM-encoded certificate chain. + PemCertificate *string `json:"pemCertificate,omitempty"` + + // Output only. The expiry timestamp of a Certificate. + ExpireTime *string `json:"expireTime,omitempty"` + + // Immutable. The scope of the certificate. + Scope *string `json:"scope,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.Certificate.ManagedCertificate +type Certificate_ManagedCertificate struct { + // Immutable. The domains for which a managed SSL certificate will be + // generated. Wildcard domains are only supported with DNS challenge + // resolution. + Domains []string `json:"domains,omitempty"` + + // Immutable. Authorizations that will be used for performing domain + // authorization. + DnsAuthorizations []string `json:"dnsAuthorizations,omitempty"` + + // Immutable. The resource name for a + // [CertificateIssuanceConfig][google.cloud.certificatemanager.v1.CertificateIssuanceConfig] + // used to configure private PKI certificates in the format + // `projects/*/locations/*/certificateIssuanceConfigs/*`. + // If this field is not set, the certificates will instead be publicly + // signed as documented at + // https://cloud.google.com/load-balancing/docs/ssl-certificates/google-managed-certs#caa. + IssuanceConfig *string `json:"issuanceConfig,omitempty"` + + // Output only. State of the managed certificate resource. + State *string `json:"state,omitempty"` + + // Output only. Information about issues with provisioning a Managed + // Certificate. + ProvisioningIssue *Certificate_ManagedCertificate_ProvisioningIssue `json:"provisioningIssue,omitempty"` + + // Output only. Detailed state of the latest authorization attempt for each + // domain specified for managed certificate resource. + AuthorizationAttemptInfo []Certificate_ManagedCertificate_AuthorizationAttemptInfo `json:"authorizationAttemptInfo,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.Certificate.ManagedCertificate.AuthorizationAttemptInfo +type Certificate_ManagedCertificate_AuthorizationAttemptInfo struct { + // Domain name of the authorization attempt. + Domain *string `json:"domain,omitempty"` + + // Output only. State of the domain for managed certificate issuance. + State *string `json:"state,omitempty"` + + // Output only. Reason for failure of the authorization attempt for the + // domain. + FailureReason *string `json:"failureReason,omitempty"` + + // Output only. Human readable explanation for reaching the state. + // Provided to help address the configuration issues. Not guaranteed to be + // stable. For programmatic access use FailureReason enum. + Details *string `json:"details,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.Certificate.ManagedCertificate.ProvisioningIssue +type Certificate_ManagedCertificate_ProvisioningIssue struct { + // Output only. Reason for provisioning failures. + Reason *string `json:"reason,omitempty"` + + // Output only. Human readable explanation about the issue. Provided to + // help address the configuration issues. Not guaranteed to be stable. For + // programmatic access use Reason enum. + Details *string `json:"details,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.Certificate.SelfManagedCertificate +type Certificate_SelfManagedCertificate struct { + // Input only. The PEM-encoded certificate chain. + // Leaf certificate comes first, followed by intermediate ones if any. + PemCertificate *string `json:"pemCertificate,omitempty"` + + // Input only. The PEM-encoded private key of the leaf certificate. + PemPrivateKey *string `json:"pemPrivateKey,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.CertificateIssuanceConfig +type CertificateIssuanceConfig struct { + // A user-defined name of the certificate issuance config. + // CertificateIssuanceConfig names must be unique globally and match pattern + // `projects/*/locations/*/certificateIssuanceConfigs/*`. + Name *string `json:"name,omitempty"` + + // Output only. The creation timestamp of a CertificateIssuanceConfig. + CreateTime *string `json:"createTime,omitempty"` + + // Output only. The last update timestamp of a CertificateIssuanceConfig. + UpdateTime *string `json:"updateTime,omitempty"` + + // Set of labels associated with a CertificateIssuanceConfig. + Labels map[string]string `json:"labels,omitempty"` + + // One or more paragraphs of text description of a CertificateIssuanceConfig. + Description *string `json:"description,omitempty"` + + // Required. The CA that issues the workload certificate. It includes the CA + // address, type, authentication to CA service, etc. + CertificateAuthorityConfig *CertificateIssuanceConfig_CertificateAuthorityConfig `json:"certificateAuthorityConfig,omitempty"` + + // Required. Workload certificate lifetime requested. + Lifetime *string `json:"lifetime,omitempty"` + + // Required. Specifies the percentage of elapsed time of the certificate + // lifetime to wait before renewing the certificate. Must be a number between + // 1-99, inclusive. + RotationWindowPercentage *int32 `json:"rotationWindowPercentage,omitempty"` + + // Required. The key algorithm to use when generating the private key. + KeyAlgorithm *string `json:"keyAlgorithm,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.CertificateIssuanceConfig.CertificateAuthorityConfig +type CertificateIssuanceConfig_CertificateAuthorityConfig struct { + // Defines a CertificateAuthorityServiceConfig. + CertificateAuthorityServiceConfig *CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig `json:"certificateAuthorityServiceConfig,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.CertificateIssuanceConfig.CertificateAuthorityConfig.CertificateAuthorityServiceConfig +type CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig struct { + // Required. A CA pool resource used to issue a certificate. + // The CA pool string has a relative resource path following the form + // "projects/{project}/locations/{location}/caPools/{ca_pool}". + CaPool *string `json:"caPool,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.CertificateMap +type CertificateMap struct { + // A user-defined name of the Certificate Map. Certificate Map names must be + // unique globally and match pattern + // `projects/*/locations/*/certificateMaps/*`. + Name *string `json:"name,omitempty"` + + // One or more paragraphs of text description of a certificate map. + Description *string `json:"description,omitempty"` + + // Output only. The creation timestamp of a Certificate Map. + CreateTime *string `json:"createTime,omitempty"` + + // Output only. The update timestamp of a Certificate Map. + UpdateTime *string `json:"updateTime,omitempty"` + + // Set of labels associated with a Certificate Map. + Labels map[string]string `json:"labels,omitempty"` + + // Output only. A list of GCLB targets that use this Certificate Map. + // A Target Proxy is only present on this list if it's attached to a + // Forwarding Rule. + GclbTargets []CertificateMap_GclbTarget `json:"gclbTargets,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.CertificateMap.GclbTarget +type CertificateMap_GclbTarget struct { + // Output only. This field returns the resource name in the following + // format: + // `//compute.googleapis.com/projects/*/global/targetHttpsProxies/*`. + TargetHTTPSProxy *string `json:"targetHTTPSProxy,omitempty"` + + // Output only. This field returns the resource name in the following + // format: + // `//compute.googleapis.com/projects/*/global/targetSslProxies/*`. + TargetSslProxy *string `json:"targetSslProxy,omitempty"` + + // Output only. IP configurations for this Target Proxy where the + // Certificate Map is serving. + IpConfigs []CertificateMap_GclbTarget_IpConfig `json:"ipConfigs,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.CertificateMap.GclbTarget.IpConfig +type CertificateMap_GclbTarget_IpConfig struct { + // Output only. An external IP address. + IpAddress *string `json:"ipAddress,omitempty"` + + // Output only. Ports. + Ports []uint32 `json:"ports,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.CertificateMapEntry +type CertificateMapEntry struct { + // A user-defined name of the Certificate Map Entry. Certificate Map Entry + // names must be unique globally and match pattern + // `projects/*/locations/*/certificateMaps/*/certificateMapEntries/*`. + Name *string `json:"name,omitempty"` + + // One or more paragraphs of text description of a certificate map entry. + Description *string `json:"description,omitempty"` + + // Output only. The creation timestamp of a Certificate Map Entry. + CreateTime *string `json:"createTime,omitempty"` + + // Output only. The update timestamp of a Certificate Map Entry. + UpdateTime *string `json:"updateTime,omitempty"` + + // Set of labels associated with a Certificate Map Entry. + Labels map[string]string `json:"labels,omitempty"` + + // A Hostname (FQDN, e.g. `example.com`) or a wildcard hostname expression + // (`*.example.com`) for a set of hostnames with common suffix. Used as + // Server Name Indication (SNI) for selecting a proper certificate. + Hostname *string `json:"hostname,omitempty"` + + // A predefined matcher for particular cases, other than SNI selection. + Matcher *string `json:"matcher,omitempty"` + + // A set of Certificates defines for the given `hostname`. There can be + // defined up to four certificates in each Certificate Map Entry. Each + // certificate must match pattern `projects/*/locations/*/certificates/*`. + Certificates []string `json:"certificates,omitempty"` + + // Output only. A serving state of this Certificate Map Entry. + State *string `json:"state,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.DnsAuthorization.DnsResourceRecord +type DnsAuthorization_DnsResourceRecord struct { + // Output only. Fully qualified name of the DNS Resource Record. + // e.g. `_acme-challenge.example.com` + Name *string `json:"name,omitempty"` + + // Output only. Type of the DNS Resource Record. + // Currently always set to "CNAME". + Type *string `json:"type,omitempty"` + + // Output only. Data of the DNS Resource Record. + Data *string `json:"data,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.TrustConfig +type TrustConfig struct { + // A user-defined name of the trust config. TrustConfig names must be + // unique globally and match pattern + // `projects/*/locations/*/trustConfigs/*`. + Name *string `json:"name,omitempty"` + + // Output only. The creation timestamp of a TrustConfig. + CreateTime *string `json:"createTime,omitempty"` + + // Output only. The last update timestamp of a TrustConfig. + UpdateTime *string `json:"updateTime,omitempty"` + + // Set of labels associated with a TrustConfig. + Labels map[string]string `json:"labels,omitempty"` + + // One or more paragraphs of text description of a TrustConfig. + Description *string `json:"description,omitempty"` + + // This checksum is computed by the server based on the value of other + // fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + Etag *string `json:"etag,omitempty"` + + // Set of trust stores to perform validation against. + // + // This field is supported when TrustConfig is configured with Load Balancers, + // currently not supported for SPIFFE certificate validation. + // + // Only one TrustStore specified is currently allowed. + TrustStores []TrustConfig_TrustStore `json:"trustStores,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.TrustConfig.IntermediateCA +type TrustConfig_IntermediateCA struct { + // PEM intermediate certificate used for building up paths + // for validation. + // + // Each certificate provided in PEM format may occupy up to 5kB. + PemCertificate *string `json:"pemCertificate,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.TrustConfig.TrustAnchor +type TrustConfig_TrustAnchor struct { + // PEM root certificate of the PKI used for validation. + // + // Each certificate provided in PEM format may occupy up to 5kB. + PemCertificate *string `json:"pemCertificate,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.TrustConfig.TrustStore +type TrustConfig_TrustStore struct { + // List of Trust Anchors to be used while performing validation + // against a given TrustStore. + TrustAnchors []TrustConfig_TrustAnchor `json:"trustAnchors,omitempty"` + + // Set of intermediate CA certificates used for the path building + // phase of chain validation. + // + // The field is currently not supported if TrustConfig is used for the + // workload certificate feature. + IntermediateCas []TrustConfig_IntermediateCA `json:"intermediateCas,omitempty"` +} diff --git a/apis/certificatemanager/v1alpha1/zz_generated.deepcopy.go b/apis/certificatemanager/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000000..7f755ba985 --- /dev/null +++ b/apis/certificatemanager/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,784 @@ +//go:build !ignore_autogenerated + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + k8sv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/k8s/v1alpha1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Certificate) DeepCopyInto(out *Certificate) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime + *out = new(string) + **out = **in + } + if in.UpdateTime != nil { + in, out := &in.UpdateTime, &out.UpdateTime + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.SelfManaged != nil { + in, out := &in.SelfManaged, &out.SelfManaged + *out = new(Certificate_SelfManagedCertificate) + (*in).DeepCopyInto(*out) + } + if in.Managed != nil { + in, out := &in.Managed, &out.Managed + *out = new(Certificate_ManagedCertificate) + (*in).DeepCopyInto(*out) + } + if in.SanDnsnames != nil { + in, out := &in.SanDnsnames, &out.SanDnsnames + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PemCertificate != nil { + in, out := &in.PemCertificate, &out.PemCertificate + *out = new(string) + **out = **in + } + if in.ExpireTime != nil { + in, out := &in.ExpireTime, &out.ExpireTime + *out = new(string) + **out = **in + } + if in.Scope != nil { + in, out := &in.Scope, &out.Scope + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Certificate. +func (in *Certificate) DeepCopy() *Certificate { + if in == nil { + return nil + } + out := new(Certificate) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateIssuanceConfig) DeepCopyInto(out *CertificateIssuanceConfig) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime + *out = new(string) + **out = **in + } + if in.UpdateTime != nil { + in, out := &in.UpdateTime, &out.UpdateTime + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.CertificateAuthorityConfig != nil { + in, out := &in.CertificateAuthorityConfig, &out.CertificateAuthorityConfig + *out = new(CertificateIssuanceConfig_CertificateAuthorityConfig) + (*in).DeepCopyInto(*out) + } + if in.Lifetime != nil { + in, out := &in.Lifetime, &out.Lifetime + *out = new(string) + **out = **in + } + if in.RotationWindowPercentage != nil { + in, out := &in.RotationWindowPercentage, &out.RotationWindowPercentage + *out = new(int32) + **out = **in + } + if in.KeyAlgorithm != nil { + in, out := &in.KeyAlgorithm, &out.KeyAlgorithm + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateIssuanceConfig. +func (in *CertificateIssuanceConfig) DeepCopy() *CertificateIssuanceConfig { + if in == nil { + return nil + } + out := new(CertificateIssuanceConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateIssuanceConfig_CertificateAuthorityConfig) DeepCopyInto(out *CertificateIssuanceConfig_CertificateAuthorityConfig) { + *out = *in + if in.CertificateAuthorityServiceConfig != nil { + in, out := &in.CertificateAuthorityServiceConfig, &out.CertificateAuthorityServiceConfig + *out = new(CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateIssuanceConfig_CertificateAuthorityConfig. +func (in *CertificateIssuanceConfig_CertificateAuthorityConfig) DeepCopy() *CertificateIssuanceConfig_CertificateAuthorityConfig { + if in == nil { + return nil + } + out := new(CertificateIssuanceConfig_CertificateAuthorityConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig) DeepCopyInto(out *CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig) { + *out = *in + if in.CaPool != nil { + in, out := &in.CaPool, &out.CaPool + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig. +func (in *CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig) DeepCopy() *CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig { + if in == nil { + return nil + } + out := new(CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateManagerDNSAuthorization) DeepCopyInto(out *CertificateManagerDNSAuthorization) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateManagerDNSAuthorization. +func (in *CertificateManagerDNSAuthorization) DeepCopy() *CertificateManagerDNSAuthorization { + if in == nil { + return nil + } + out := new(CertificateManagerDNSAuthorization) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CertificateManagerDNSAuthorization) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateManagerDNSAuthorizationList) DeepCopyInto(out *CertificateManagerDNSAuthorizationList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]CertificateManagerDNSAuthorization, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateManagerDNSAuthorizationList. +func (in *CertificateManagerDNSAuthorizationList) DeepCopy() *CertificateManagerDNSAuthorizationList { + if in == nil { + return nil + } + out := new(CertificateManagerDNSAuthorizationList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CertificateManagerDNSAuthorizationList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateManagerDNSAuthorizationSpec) DeepCopyInto(out *CertificateManagerDNSAuthorizationSpec) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + out.ProjectRef = in.ProjectRef + if in.ResourceID != nil { + in, out := &in.ResourceID, &out.ResourceID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateManagerDNSAuthorizationSpec. +func (in *CertificateManagerDNSAuthorizationSpec) DeepCopy() *CertificateManagerDNSAuthorizationSpec { + if in == nil { + return nil + } + out := new(CertificateManagerDNSAuthorizationSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateManagerDNSAuthorizationStatus) DeepCopyInto(out *CertificateManagerDNSAuthorizationStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]k8sv1alpha1.Condition, len(*in)) + copy(*out, *in) + } + if in.DnsResourceRecord != nil { + in, out := &in.DnsResourceRecord, &out.DnsResourceRecord + *out = make([]DnsauthorizationDnsResourceRecordStatus, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ObservedGeneration != nil { + in, out := &in.ObservedGeneration, &out.ObservedGeneration + *out = new(int64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateManagerDNSAuthorizationStatus. +func (in *CertificateManagerDNSAuthorizationStatus) DeepCopy() *CertificateManagerDNSAuthorizationStatus { + if in == nil { + return nil + } + out := new(CertificateManagerDNSAuthorizationStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateMap) DeepCopyInto(out *CertificateMap) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime + *out = new(string) + **out = **in + } + if in.UpdateTime != nil { + in, out := &in.UpdateTime, &out.UpdateTime + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.GclbTargets != nil { + in, out := &in.GclbTargets, &out.GclbTargets + *out = make([]CertificateMap_GclbTarget, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateMap. +func (in *CertificateMap) DeepCopy() *CertificateMap { + if in == nil { + return nil + } + out := new(CertificateMap) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateMapEntry) DeepCopyInto(out *CertificateMapEntry) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime + *out = new(string) + **out = **in + } + if in.UpdateTime != nil { + in, out := &in.UpdateTime, &out.UpdateTime + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Hostname != nil { + in, out := &in.Hostname, &out.Hostname + *out = new(string) + **out = **in + } + if in.Matcher != nil { + in, out := &in.Matcher, &out.Matcher + *out = new(string) + **out = **in + } + if in.Certificates != nil { + in, out := &in.Certificates, &out.Certificates + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.State != nil { + in, out := &in.State, &out.State + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateMapEntry. +func (in *CertificateMapEntry) DeepCopy() *CertificateMapEntry { + if in == nil { + return nil + } + out := new(CertificateMapEntry) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateMap_GclbTarget) DeepCopyInto(out *CertificateMap_GclbTarget) { + *out = *in + if in.TargetHTTPSProxy != nil { + in, out := &in.TargetHTTPSProxy, &out.TargetHTTPSProxy + *out = new(string) + **out = **in + } + if in.TargetSslProxy != nil { + in, out := &in.TargetSslProxy, &out.TargetSslProxy + *out = new(string) + **out = **in + } + if in.IpConfigs != nil { + in, out := &in.IpConfigs, &out.IpConfigs + *out = make([]CertificateMap_GclbTarget_IpConfig, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateMap_GclbTarget. +func (in *CertificateMap_GclbTarget) DeepCopy() *CertificateMap_GclbTarget { + if in == nil { + return nil + } + out := new(CertificateMap_GclbTarget) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateMap_GclbTarget_IpConfig) DeepCopyInto(out *CertificateMap_GclbTarget_IpConfig) { + *out = *in + if in.IpAddress != nil { + in, out := &in.IpAddress, &out.IpAddress + *out = new(string) + **out = **in + } + if in.Ports != nil { + in, out := &in.Ports, &out.Ports + *out = make([]uint32, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateMap_GclbTarget_IpConfig. +func (in *CertificateMap_GclbTarget_IpConfig) DeepCopy() *CertificateMap_GclbTarget_IpConfig { + if in == nil { + return nil + } + out := new(CertificateMap_GclbTarget_IpConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Certificate_ManagedCertificate) DeepCopyInto(out *Certificate_ManagedCertificate) { + *out = *in + if in.Domains != nil { + in, out := &in.Domains, &out.Domains + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.DnsAuthorizations != nil { + in, out := &in.DnsAuthorizations, &out.DnsAuthorizations + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.IssuanceConfig != nil { + in, out := &in.IssuanceConfig, &out.IssuanceConfig + *out = new(string) + **out = **in + } + if in.State != nil { + in, out := &in.State, &out.State + *out = new(string) + **out = **in + } + if in.ProvisioningIssue != nil { + in, out := &in.ProvisioningIssue, &out.ProvisioningIssue + *out = new(Certificate_ManagedCertificate_ProvisioningIssue) + (*in).DeepCopyInto(*out) + } + if in.AuthorizationAttemptInfo != nil { + in, out := &in.AuthorizationAttemptInfo, &out.AuthorizationAttemptInfo + *out = make([]Certificate_ManagedCertificate_AuthorizationAttemptInfo, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Certificate_ManagedCertificate. +func (in *Certificate_ManagedCertificate) DeepCopy() *Certificate_ManagedCertificate { + if in == nil { + return nil + } + out := new(Certificate_ManagedCertificate) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Certificate_ManagedCertificate_AuthorizationAttemptInfo) DeepCopyInto(out *Certificate_ManagedCertificate_AuthorizationAttemptInfo) { + *out = *in + if in.Domain != nil { + in, out := &in.Domain, &out.Domain + *out = new(string) + **out = **in + } + if in.State != nil { + in, out := &in.State, &out.State + *out = new(string) + **out = **in + } + if in.FailureReason != nil { + in, out := &in.FailureReason, &out.FailureReason + *out = new(string) + **out = **in + } + if in.Details != nil { + in, out := &in.Details, &out.Details + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Certificate_ManagedCertificate_AuthorizationAttemptInfo. +func (in *Certificate_ManagedCertificate_AuthorizationAttemptInfo) DeepCopy() *Certificate_ManagedCertificate_AuthorizationAttemptInfo { + if in == nil { + return nil + } + out := new(Certificate_ManagedCertificate_AuthorizationAttemptInfo) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Certificate_ManagedCertificate_ProvisioningIssue) DeepCopyInto(out *Certificate_ManagedCertificate_ProvisioningIssue) { + *out = *in + if in.Reason != nil { + in, out := &in.Reason, &out.Reason + *out = new(string) + **out = **in + } + if in.Details != nil { + in, out := &in.Details, &out.Details + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Certificate_ManagedCertificate_ProvisioningIssue. +func (in *Certificate_ManagedCertificate_ProvisioningIssue) DeepCopy() *Certificate_ManagedCertificate_ProvisioningIssue { + if in == nil { + return nil + } + out := new(Certificate_ManagedCertificate_ProvisioningIssue) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Certificate_SelfManagedCertificate) DeepCopyInto(out *Certificate_SelfManagedCertificate) { + *out = *in + if in.PemCertificate != nil { + in, out := &in.PemCertificate, &out.PemCertificate + *out = new(string) + **out = **in + } + if in.PemPrivateKey != nil { + in, out := &in.PemPrivateKey, &out.PemPrivateKey + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Certificate_SelfManagedCertificate. +func (in *Certificate_SelfManagedCertificate) DeepCopy() *Certificate_SelfManagedCertificate { + if in == nil { + return nil + } + out := new(Certificate_SelfManagedCertificate) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DnsAuthorization_DnsResourceRecord) DeepCopyInto(out *DnsAuthorization_DnsResourceRecord) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Data != nil { + in, out := &in.Data, &out.Data + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DnsAuthorization_DnsResourceRecord. +func (in *DnsAuthorization_DnsResourceRecord) DeepCopy() *DnsAuthorization_DnsResourceRecord { + if in == nil { + return nil + } + out := new(DnsAuthorization_DnsResourceRecord) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DnsauthorizationDnsResourceRecordStatus) DeepCopyInto(out *DnsauthorizationDnsResourceRecordStatus) { + *out = *in + if in.Data != nil { + in, out := &in.Data, &out.Data + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DnsauthorizationDnsResourceRecordStatus. +func (in *DnsauthorizationDnsResourceRecordStatus) DeepCopy() *DnsauthorizationDnsResourceRecordStatus { + if in == nil { + return nil + } + out := new(DnsauthorizationDnsResourceRecordStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TrustConfig) DeepCopyInto(out *TrustConfig) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime + *out = new(string) + **out = **in + } + if in.UpdateTime != nil { + in, out := &in.UpdateTime, &out.UpdateTime + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *out = new(string) + **out = **in + } + if in.TrustStores != nil { + in, out := &in.TrustStores, &out.TrustStores + *out = make([]TrustConfig_TrustStore, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrustConfig. +func (in *TrustConfig) DeepCopy() *TrustConfig { + if in == nil { + return nil + } + out := new(TrustConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TrustConfig_IntermediateCA) DeepCopyInto(out *TrustConfig_IntermediateCA) { + *out = *in + if in.PemCertificate != nil { + in, out := &in.PemCertificate, &out.PemCertificate + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrustConfig_IntermediateCA. +func (in *TrustConfig_IntermediateCA) DeepCopy() *TrustConfig_IntermediateCA { + if in == nil { + return nil + } + out := new(TrustConfig_IntermediateCA) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TrustConfig_TrustAnchor) DeepCopyInto(out *TrustConfig_TrustAnchor) { + *out = *in + if in.PemCertificate != nil { + in, out := &in.PemCertificate, &out.PemCertificate + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrustConfig_TrustAnchor. +func (in *TrustConfig_TrustAnchor) DeepCopy() *TrustConfig_TrustAnchor { + if in == nil { + return nil + } + out := new(TrustConfig_TrustAnchor) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TrustConfig_TrustStore) DeepCopyInto(out *TrustConfig_TrustStore) { + *out = *in + if in.TrustAnchors != nil { + in, out := &in.TrustAnchors, &out.TrustAnchors + *out = make([]TrustConfig_TrustAnchor, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IntermediateCas != nil { + in, out := &in.IntermediateCas, &out.IntermediateCas + *out = make([]TrustConfig_IntermediateCA, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrustConfig_TrustStore. +func (in *TrustConfig_TrustStore) DeepCopy() *TrustConfig_TrustStore { + if in == nil { + return nil + } + out := new(TrustConfig_TrustStore) + in.DeepCopyInto(out) + return out +} diff --git a/apis/certificatemanager/v1beta1/certificatemanagerdnsauthorization_types.go b/apis/certificatemanager/v1beta1/certificatemanagerdnsauthorization_types.go new file mode 100644 index 0000000000..60fb8fdea3 --- /dev/null +++ b/apis/certificatemanager/v1beta1/certificatemanagerdnsauthorization_types.go @@ -0,0 +1,132 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package v1beta1 + +import ( + refs "github.com/GoogleCloudPlatform/k8s-config-connector/apis/refs/v1beta1" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/k8s/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +var CertificateManagerDNSAuthorizationGVK = GroupVersion.WithKind("CertificateManagerDNSAuthorization") + +// CertificateManagerDNSAuthorizationSpec defines the desired state of CertificateManagerDNSAuthorization +// +kcc:proto=google.cloud.certificatemanager.v1.DnsAuthorization +type CertificateManagerDNSAuthorizationSpec struct { + /* A human-readable description of the resource. */ + // +optional + Description *string `json:"description,omitempty"` + + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Domain field is immutable" + /* Immutable. A domain which is being authorized. A DnsAuthorization resource covers a + single domain and its wildcard, e.g. authorization for "example.com" can + be used to issue certificates for "example.com" and "*.example.com". */ + // +required + Domain string `json:"domain"` + + /* The project that this resource belongs to. */ + // +required + ProjectRef refs.ProjectRef `json:"projectRef"` + + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="ResourceID field is immutable" + /* Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default. */ + // +optional + ResourceID *string `json:"resourceID,omitempty"` +} + +type DnsauthorizationDnsResourceRecordStatus struct { + /* Data of the DNS Resource Record. */ + // +optional + Data *string `json:"data,omitempty"` + + /* Fully qualified name of the DNS Resource Record. + E.g. '_acme-challenge.example.com'. */ + // +optional + Name *string `json:"name,omitempty"` + + /* Type of the DNS Resource Record. */ + // +optional + Type *string `json:"type,omitempty"` +} + +// CertificateManagerDNSAuthorizationStatus defines the config connector machine state of CertificateManagerDNSAuthorization +type CertificateManagerDNSAuthorizationStatus struct { + /* Conditions represent the latest available observations of the + CertificateManagerDNSAuthorization's current state. */ + Conditions []v1alpha1.Condition `json:"conditions,omitempty"` + /* The structure describing the DNS Resource Record that needs to be added + to DNS configuration for the authorization to be usable by + certificate. */ + // +optional + DnsResourceRecord []DnsauthorizationDnsResourceRecordStatus `json:"dnsResourceRecord,omitempty"` + + /* ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. */ + // +optional + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + + /* NOTYET + // A unique specifier for the CertificateManagerDNSAuthorization resource in GCP. + // +optional + ExternalRef *string `json:"externalRef,omitempty"` + */ + + /* NOTYET + // ObservedState is the state of the resource as most recently observed in GCP. + // +optional + ObservedState *CertificateManagerDNSAuthorizationObservedState `json:"observedState,omitempty"` + */ +} + +/* NOTYET +// CertificateManagerDNSAuthorizationSpec defines the desired state of CertificateManagerDNSAuthorization +// +kcc:proto=google.cloud.certificatemanager.v1.DnsAuthorization +type CertificateManagerDNSAuthorizationObservedState struct { +} +*/ + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:resource:categories=gcp,shortName=gcpcertificatemanagerdnsauthorization;gcpcertificatemanagerdnsauthorizations +// +kubebuilder:subresource:status +// +kubebuilder:metadata:labels="cnrm.cloud.google.com/managed-by-kcc=true";"cnrm.cloud.google.com/system=true" +// +kubebuilder:printcolumn:name="Age",JSONPath=".metadata.creationTimestamp",type="date" +// +kubebuilder:printcolumn:name="Ready",JSONPath=".status.conditions[?(@.type=='Ready')].status",type="string",description="When 'True', the most recent reconcile of the resource succeeded" +// +kubebuilder:printcolumn:name="Status",JSONPath=".status.conditions[?(@.type=='Ready')].reason",type="string",description="The reason for the value in 'Ready'" +// +kubebuilder:printcolumn:name="Status Age",JSONPath=".status.conditions[?(@.type=='Ready')].lastTransitionTime",type="date",description="The last transition time for the value in 'Status'" +// +kubebuilder:metadata:labels="cnrm.cloud.google.com/managed-by-kcc=true";"cnrm.cloud.google.com/stability-level=stable";"cnrm.cloud.google.com/tf2crd=true" + +// CertificateManagerDNSAuthorization is the Schema for the CertificateManagerDNSAuthorization API +// +k8s:openapi-gen=true +// +kubebuilder:storageversion +type CertificateManagerDNSAuthorization struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + // +required + Spec CertificateManagerDNSAuthorizationSpec `json:"spec,omitempty"` + Status CertificateManagerDNSAuthorizationStatus `json:"status,omitempty"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// CertificateManagerDNSAuthorizationList contains a list of CertificateManagerDNSAuthorization +type CertificateManagerDNSAuthorizationList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []CertificateManagerDNSAuthorization `json:"items"` +} + +func init() { + SchemeBuilder.Register(&CertificateManagerDNSAuthorization{}, &CertificateManagerDNSAuthorizationList{}) +} diff --git a/apis/certificatemanager/v1beta1/doc.go b/apis/certificatemanager/v1beta1/doc.go new file mode 100644 index 0000000000..43c640d27e --- /dev/null +++ b/apis/certificatemanager/v1beta1/doc.go @@ -0,0 +1,15 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package v1beta1 diff --git a/apis/certificatemanager/v1beta1/groupversion_info.go b/apis/certificatemanager/v1beta1/groupversion_info.go new file mode 100644 index 0000000000..bc9691417f --- /dev/null +++ b/apis/certificatemanager/v1beta1/groupversion_info.go @@ -0,0 +1,33 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +kubebuilder:object:generate=true +// +groupName=certificatemanager.cnrm.cloud.google.com +package v1beta1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +var ( + // GroupVersion is group version used to register these objects + GroupVersion = schema.GroupVersion{Group: "certificatemanager.cnrm.cloud.google.com", Version: "v1beta1"} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/certificatemanager/v1beta1/types.generated.go b/apis/certificatemanager/v1beta1/types.generated.go new file mode 100644 index 0000000000..232693185b --- /dev/null +++ b/apis/certificatemanager/v1beta1/types.generated.go @@ -0,0 +1,340 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package v1beta1 + +// +kcc:proto=google.cloud.certificatemanager.v1.Certificate +type Certificate struct { + // A user-defined name of the certificate. Certificate names must be unique + // globally and match pattern `projects/*/locations/*/certificates/*`. + Name *string `json:"name,omitempty"` + + // One or more paragraphs of text description of a certificate. + Description *string `json:"description,omitempty"` + + // Output only. The creation timestamp of a Certificate. + CreateTime *string `json:"createTime,omitempty"` + + // Output only. The last update timestamp of a Certificate. + UpdateTime *string `json:"updateTime,omitempty"` + + // Set of labels associated with a Certificate. + Labels map[string]string `json:"labels,omitempty"` + + // If set, defines data of a self-managed certificate. + SelfManaged *Certificate_SelfManagedCertificate `json:"selfManaged,omitempty"` + + // If set, contains configuration and state of a managed certificate. + Managed *Certificate_ManagedCertificate `json:"managed,omitempty"` + + // Output only. The list of Subject Alternative Names of dnsName type defined + // in the certificate (see RFC 5280 4.2.1.6). Managed certificates that + // haven't been provisioned yet have this field populated with a value of the + // managed.domains field. + SanDnsnames []string `json:"sanDnsnames,omitempty"` + + // Output only. The PEM-encoded certificate chain. + PemCertificate *string `json:"pemCertificate,omitempty"` + + // Output only. The expiry timestamp of a Certificate. + ExpireTime *string `json:"expireTime,omitempty"` + + // Immutable. The scope of the certificate. + Scope *string `json:"scope,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.Certificate.ManagedCertificate +type Certificate_ManagedCertificate struct { + // Immutable. The domains for which a managed SSL certificate will be + // generated. Wildcard domains are only supported with DNS challenge + // resolution. + Domains []string `json:"domains,omitempty"` + + // Immutable. Authorizations that will be used for performing domain + // authorization. + DnsAuthorizations []string `json:"dnsAuthorizations,omitempty"` + + // Immutable. The resource name for a + // [CertificateIssuanceConfig][google.cloud.certificatemanager.v1.CertificateIssuanceConfig] + // used to configure private PKI certificates in the format + // `projects/*/locations/*/certificateIssuanceConfigs/*`. + // If this field is not set, the certificates will instead be publicly + // signed as documented at + // https://cloud.google.com/load-balancing/docs/ssl-certificates/google-managed-certs#caa. + IssuanceConfig *string `json:"issuanceConfig,omitempty"` + + // Output only. State of the managed certificate resource. + State *string `json:"state,omitempty"` + + // Output only. Information about issues with provisioning a Managed + // Certificate. + ProvisioningIssue *Certificate_ManagedCertificate_ProvisioningIssue `json:"provisioningIssue,omitempty"` + + // Output only. Detailed state of the latest authorization attempt for each + // domain specified for managed certificate resource. + AuthorizationAttemptInfo []Certificate_ManagedCertificate_AuthorizationAttemptInfo `json:"authorizationAttemptInfo,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.Certificate.ManagedCertificate.AuthorizationAttemptInfo +type Certificate_ManagedCertificate_AuthorizationAttemptInfo struct { + // Domain name of the authorization attempt. + Domain *string `json:"domain,omitempty"` + + // Output only. State of the domain for managed certificate issuance. + State *string `json:"state,omitempty"` + + // Output only. Reason for failure of the authorization attempt for the + // domain. + FailureReason *string `json:"failureReason,omitempty"` + + // Output only. Human readable explanation for reaching the state. + // Provided to help address the configuration issues. Not guaranteed to be + // stable. For programmatic access use FailureReason enum. + Details *string `json:"details,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.Certificate.ManagedCertificate.ProvisioningIssue +type Certificate_ManagedCertificate_ProvisioningIssue struct { + // Output only. Reason for provisioning failures. + Reason *string `json:"reason,omitempty"` + + // Output only. Human readable explanation about the issue. Provided to + // help address the configuration issues. Not guaranteed to be stable. For + // programmatic access use Reason enum. + Details *string `json:"details,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.Certificate.SelfManagedCertificate +type Certificate_SelfManagedCertificate struct { + // Input only. The PEM-encoded certificate chain. + // Leaf certificate comes first, followed by intermediate ones if any. + PemCertificate *string `json:"pemCertificate,omitempty"` + + // Input only. The PEM-encoded private key of the leaf certificate. + PemPrivateKey *string `json:"pemPrivateKey,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.CertificateIssuanceConfig +type CertificateIssuanceConfig struct { + // A user-defined name of the certificate issuance config. + // CertificateIssuanceConfig names must be unique globally and match pattern + // `projects/*/locations/*/certificateIssuanceConfigs/*`. + Name *string `json:"name,omitempty"` + + // Output only. The creation timestamp of a CertificateIssuanceConfig. + CreateTime *string `json:"createTime,omitempty"` + + // Output only. The last update timestamp of a CertificateIssuanceConfig. + UpdateTime *string `json:"updateTime,omitempty"` + + // Set of labels associated with a CertificateIssuanceConfig. + Labels map[string]string `json:"labels,omitempty"` + + // One or more paragraphs of text description of a CertificateIssuanceConfig. + Description *string `json:"description,omitempty"` + + // Required. The CA that issues the workload certificate. It includes the CA + // address, type, authentication to CA service, etc. + CertificateAuthorityConfig *CertificateIssuanceConfig_CertificateAuthorityConfig `json:"certificateAuthorityConfig,omitempty"` + + // Required. Workload certificate lifetime requested. + Lifetime *string `json:"lifetime,omitempty"` + + // Required. Specifies the percentage of elapsed time of the certificate + // lifetime to wait before renewing the certificate. Must be a number between + // 1-99, inclusive. + RotationWindowPercentage *int32 `json:"rotationWindowPercentage,omitempty"` + + // Required. The key algorithm to use when generating the private key. + KeyAlgorithm *string `json:"keyAlgorithm,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.CertificateIssuanceConfig.CertificateAuthorityConfig +type CertificateIssuanceConfig_CertificateAuthorityConfig struct { + // Defines a CertificateAuthorityServiceConfig. + CertificateAuthorityServiceConfig *CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig `json:"certificateAuthorityServiceConfig,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.CertificateIssuanceConfig.CertificateAuthorityConfig.CertificateAuthorityServiceConfig +type CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig struct { + // Required. A CA pool resource used to issue a certificate. + // The CA pool string has a relative resource path following the form + // "projects/{project}/locations/{location}/caPools/{ca_pool}". + CaPool *string `json:"caPool,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.CertificateMap +type CertificateMap struct { + // A user-defined name of the Certificate Map. Certificate Map names must be + // unique globally and match pattern + // `projects/*/locations/*/certificateMaps/*`. + Name *string `json:"name,omitempty"` + + // One or more paragraphs of text description of a certificate map. + Description *string `json:"description,omitempty"` + + // Output only. The creation timestamp of a Certificate Map. + CreateTime *string `json:"createTime,omitempty"` + + // Output only. The update timestamp of a Certificate Map. + UpdateTime *string `json:"updateTime,omitempty"` + + // Set of labels associated with a Certificate Map. + Labels map[string]string `json:"labels,omitempty"` + + // Output only. A list of GCLB targets that use this Certificate Map. + // A Target Proxy is only present on this list if it's attached to a + // Forwarding Rule. + GclbTargets []CertificateMap_GclbTarget `json:"gclbTargets,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.CertificateMap.GclbTarget +type CertificateMap_GclbTarget struct { + // Output only. This field returns the resource name in the following + // format: + // `//compute.googleapis.com/projects/*/global/targetHttpsProxies/*`. + TargetHTTPSProxy *string `json:"targetHTTPSProxy,omitempty"` + + // Output only. This field returns the resource name in the following + // format: + // `//compute.googleapis.com/projects/*/global/targetSslProxies/*`. + TargetSslProxy *string `json:"targetSslProxy,omitempty"` + + // Output only. IP configurations for this Target Proxy where the + // Certificate Map is serving. + IpConfigs []CertificateMap_GclbTarget_IpConfig `json:"ipConfigs,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.CertificateMap.GclbTarget.IpConfig +type CertificateMap_GclbTarget_IpConfig struct { + // Output only. An external IP address. + IpAddress *string `json:"ipAddress,omitempty"` + + // Output only. Ports. + Ports []uint32 `json:"ports,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.CertificateMapEntry +type CertificateMapEntry struct { + // A user-defined name of the Certificate Map Entry. Certificate Map Entry + // names must be unique globally and match pattern + // `projects/*/locations/*/certificateMaps/*/certificateMapEntries/*`. + Name *string `json:"name,omitempty"` + + // One or more paragraphs of text description of a certificate map entry. + Description *string `json:"description,omitempty"` + + // Output only. The creation timestamp of a Certificate Map Entry. + CreateTime *string `json:"createTime,omitempty"` + + // Output only. The update timestamp of a Certificate Map Entry. + UpdateTime *string `json:"updateTime,omitempty"` + + // Set of labels associated with a Certificate Map Entry. + Labels map[string]string `json:"labels,omitempty"` + + // A Hostname (FQDN, e.g. `example.com`) or a wildcard hostname expression + // (`*.example.com`) for a set of hostnames with common suffix. Used as + // Server Name Indication (SNI) for selecting a proper certificate. + Hostname *string `json:"hostname,omitempty"` + + // A predefined matcher for particular cases, other than SNI selection. + Matcher *string `json:"matcher,omitempty"` + + // A set of Certificates defines for the given `hostname`. There can be + // defined up to four certificates in each Certificate Map Entry. Each + // certificate must match pattern `projects/*/locations/*/certificates/*`. + Certificates []string `json:"certificates,omitempty"` + + // Output only. A serving state of this Certificate Map Entry. + State *string `json:"state,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.DnsAuthorization.DnsResourceRecord +type DnsAuthorization_DnsResourceRecord struct { + // Output only. Fully qualified name of the DNS Resource Record. + // e.g. `_acme-challenge.example.com` + Name *string `json:"name,omitempty"` + + // Output only. Type of the DNS Resource Record. + // Currently always set to "CNAME". + Type *string `json:"type,omitempty"` + + // Output only. Data of the DNS Resource Record. + Data *string `json:"data,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.TrustConfig +type TrustConfig struct { + // A user-defined name of the trust config. TrustConfig names must be + // unique globally and match pattern + // `projects/*/locations/*/trustConfigs/*`. + Name *string `json:"name,omitempty"` + + // Output only. The creation timestamp of a TrustConfig. + CreateTime *string `json:"createTime,omitempty"` + + // Output only. The last update timestamp of a TrustConfig. + UpdateTime *string `json:"updateTime,omitempty"` + + // Set of labels associated with a TrustConfig. + Labels map[string]string `json:"labels,omitempty"` + + // One or more paragraphs of text description of a TrustConfig. + Description *string `json:"description,omitempty"` + + // This checksum is computed by the server based on the value of other + // fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + Etag *string `json:"etag,omitempty"` + + // Set of trust stores to perform validation against. + // + // This field is supported when TrustConfig is configured with Load Balancers, + // currently not supported for SPIFFE certificate validation. + // + // Only one TrustStore specified is currently allowed. + TrustStores []TrustConfig_TrustStore `json:"trustStores,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.TrustConfig.IntermediateCA +type TrustConfig_IntermediateCA struct { + // PEM intermediate certificate used for building up paths + // for validation. + // + // Each certificate provided in PEM format may occupy up to 5kB. + PemCertificate *string `json:"pemCertificate,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.TrustConfig.TrustAnchor +type TrustConfig_TrustAnchor struct { + // PEM root certificate of the PKI used for validation. + // + // Each certificate provided in PEM format may occupy up to 5kB. + PemCertificate *string `json:"pemCertificate,omitempty"` +} + +// +kcc:proto=google.cloud.certificatemanager.v1.TrustConfig.TrustStore +type TrustConfig_TrustStore struct { + // List of Trust Anchors to be used while performing validation + // against a given TrustStore. + TrustAnchors []TrustConfig_TrustAnchor `json:"trustAnchors,omitempty"` + + // Set of intermediate CA certificates used for the path building + // phase of chain validation. + // + // The field is currently not supported if TrustConfig is used for the + // workload certificate feature. + IntermediateCas []TrustConfig_IntermediateCA `json:"intermediateCas,omitempty"` +} diff --git a/apis/certificatemanager/v1beta1/zz_generated.deepcopy.go b/apis/certificatemanager/v1beta1/zz_generated.deepcopy.go new file mode 100644 index 0000000000..2b59f5fdab --- /dev/null +++ b/apis/certificatemanager/v1beta1/zz_generated.deepcopy.go @@ -0,0 +1,784 @@ +//go:build !ignore_autogenerated + +// Code generated by controller-gen. DO NOT EDIT. + +package v1beta1 + +import ( + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/k8s/v1alpha1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Certificate) DeepCopyInto(out *Certificate) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime + *out = new(string) + **out = **in + } + if in.UpdateTime != nil { + in, out := &in.UpdateTime, &out.UpdateTime + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.SelfManaged != nil { + in, out := &in.SelfManaged, &out.SelfManaged + *out = new(Certificate_SelfManagedCertificate) + (*in).DeepCopyInto(*out) + } + if in.Managed != nil { + in, out := &in.Managed, &out.Managed + *out = new(Certificate_ManagedCertificate) + (*in).DeepCopyInto(*out) + } + if in.SanDnsnames != nil { + in, out := &in.SanDnsnames, &out.SanDnsnames + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PemCertificate != nil { + in, out := &in.PemCertificate, &out.PemCertificate + *out = new(string) + **out = **in + } + if in.ExpireTime != nil { + in, out := &in.ExpireTime, &out.ExpireTime + *out = new(string) + **out = **in + } + if in.Scope != nil { + in, out := &in.Scope, &out.Scope + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Certificate. +func (in *Certificate) DeepCopy() *Certificate { + if in == nil { + return nil + } + out := new(Certificate) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateIssuanceConfig) DeepCopyInto(out *CertificateIssuanceConfig) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime + *out = new(string) + **out = **in + } + if in.UpdateTime != nil { + in, out := &in.UpdateTime, &out.UpdateTime + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.CertificateAuthorityConfig != nil { + in, out := &in.CertificateAuthorityConfig, &out.CertificateAuthorityConfig + *out = new(CertificateIssuanceConfig_CertificateAuthorityConfig) + (*in).DeepCopyInto(*out) + } + if in.Lifetime != nil { + in, out := &in.Lifetime, &out.Lifetime + *out = new(string) + **out = **in + } + if in.RotationWindowPercentage != nil { + in, out := &in.RotationWindowPercentage, &out.RotationWindowPercentage + *out = new(int32) + **out = **in + } + if in.KeyAlgorithm != nil { + in, out := &in.KeyAlgorithm, &out.KeyAlgorithm + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateIssuanceConfig. +func (in *CertificateIssuanceConfig) DeepCopy() *CertificateIssuanceConfig { + if in == nil { + return nil + } + out := new(CertificateIssuanceConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateIssuanceConfig_CertificateAuthorityConfig) DeepCopyInto(out *CertificateIssuanceConfig_CertificateAuthorityConfig) { + *out = *in + if in.CertificateAuthorityServiceConfig != nil { + in, out := &in.CertificateAuthorityServiceConfig, &out.CertificateAuthorityServiceConfig + *out = new(CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateIssuanceConfig_CertificateAuthorityConfig. +func (in *CertificateIssuanceConfig_CertificateAuthorityConfig) DeepCopy() *CertificateIssuanceConfig_CertificateAuthorityConfig { + if in == nil { + return nil + } + out := new(CertificateIssuanceConfig_CertificateAuthorityConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig) DeepCopyInto(out *CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig) { + *out = *in + if in.CaPool != nil { + in, out := &in.CaPool, &out.CaPool + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig. +func (in *CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig) DeepCopy() *CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig { + if in == nil { + return nil + } + out := new(CertificateIssuanceConfig_CertificateAuthorityConfig_CertificateAuthorityServiceConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateManagerDNSAuthorization) DeepCopyInto(out *CertificateManagerDNSAuthorization) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateManagerDNSAuthorization. +func (in *CertificateManagerDNSAuthorization) DeepCopy() *CertificateManagerDNSAuthorization { + if in == nil { + return nil + } + out := new(CertificateManagerDNSAuthorization) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CertificateManagerDNSAuthorization) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateManagerDNSAuthorizationList) DeepCopyInto(out *CertificateManagerDNSAuthorizationList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]CertificateManagerDNSAuthorization, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateManagerDNSAuthorizationList. +func (in *CertificateManagerDNSAuthorizationList) DeepCopy() *CertificateManagerDNSAuthorizationList { + if in == nil { + return nil + } + out := new(CertificateManagerDNSAuthorizationList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CertificateManagerDNSAuthorizationList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateManagerDNSAuthorizationSpec) DeepCopyInto(out *CertificateManagerDNSAuthorizationSpec) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + out.ProjectRef = in.ProjectRef + if in.ResourceID != nil { + in, out := &in.ResourceID, &out.ResourceID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateManagerDNSAuthorizationSpec. +func (in *CertificateManagerDNSAuthorizationSpec) DeepCopy() *CertificateManagerDNSAuthorizationSpec { + if in == nil { + return nil + } + out := new(CertificateManagerDNSAuthorizationSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateManagerDNSAuthorizationStatus) DeepCopyInto(out *CertificateManagerDNSAuthorizationStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]v1alpha1.Condition, len(*in)) + copy(*out, *in) + } + if in.DnsResourceRecord != nil { + in, out := &in.DnsResourceRecord, &out.DnsResourceRecord + *out = make([]DnsauthorizationDnsResourceRecordStatus, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ObservedGeneration != nil { + in, out := &in.ObservedGeneration, &out.ObservedGeneration + *out = new(int64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateManagerDNSAuthorizationStatus. +func (in *CertificateManagerDNSAuthorizationStatus) DeepCopy() *CertificateManagerDNSAuthorizationStatus { + if in == nil { + return nil + } + out := new(CertificateManagerDNSAuthorizationStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateMap) DeepCopyInto(out *CertificateMap) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime + *out = new(string) + **out = **in + } + if in.UpdateTime != nil { + in, out := &in.UpdateTime, &out.UpdateTime + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.GclbTargets != nil { + in, out := &in.GclbTargets, &out.GclbTargets + *out = make([]CertificateMap_GclbTarget, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateMap. +func (in *CertificateMap) DeepCopy() *CertificateMap { + if in == nil { + return nil + } + out := new(CertificateMap) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateMapEntry) DeepCopyInto(out *CertificateMapEntry) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime + *out = new(string) + **out = **in + } + if in.UpdateTime != nil { + in, out := &in.UpdateTime, &out.UpdateTime + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Hostname != nil { + in, out := &in.Hostname, &out.Hostname + *out = new(string) + **out = **in + } + if in.Matcher != nil { + in, out := &in.Matcher, &out.Matcher + *out = new(string) + **out = **in + } + if in.Certificates != nil { + in, out := &in.Certificates, &out.Certificates + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.State != nil { + in, out := &in.State, &out.State + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateMapEntry. +func (in *CertificateMapEntry) DeepCopy() *CertificateMapEntry { + if in == nil { + return nil + } + out := new(CertificateMapEntry) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateMap_GclbTarget) DeepCopyInto(out *CertificateMap_GclbTarget) { + *out = *in + if in.TargetHTTPSProxy != nil { + in, out := &in.TargetHTTPSProxy, &out.TargetHTTPSProxy + *out = new(string) + **out = **in + } + if in.TargetSslProxy != nil { + in, out := &in.TargetSslProxy, &out.TargetSslProxy + *out = new(string) + **out = **in + } + if in.IpConfigs != nil { + in, out := &in.IpConfigs, &out.IpConfigs + *out = make([]CertificateMap_GclbTarget_IpConfig, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateMap_GclbTarget. +func (in *CertificateMap_GclbTarget) DeepCopy() *CertificateMap_GclbTarget { + if in == nil { + return nil + } + out := new(CertificateMap_GclbTarget) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateMap_GclbTarget_IpConfig) DeepCopyInto(out *CertificateMap_GclbTarget_IpConfig) { + *out = *in + if in.IpAddress != nil { + in, out := &in.IpAddress, &out.IpAddress + *out = new(string) + **out = **in + } + if in.Ports != nil { + in, out := &in.Ports, &out.Ports + *out = make([]uint32, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateMap_GclbTarget_IpConfig. +func (in *CertificateMap_GclbTarget_IpConfig) DeepCopy() *CertificateMap_GclbTarget_IpConfig { + if in == nil { + return nil + } + out := new(CertificateMap_GclbTarget_IpConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Certificate_ManagedCertificate) DeepCopyInto(out *Certificate_ManagedCertificate) { + *out = *in + if in.Domains != nil { + in, out := &in.Domains, &out.Domains + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.DnsAuthorizations != nil { + in, out := &in.DnsAuthorizations, &out.DnsAuthorizations + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.IssuanceConfig != nil { + in, out := &in.IssuanceConfig, &out.IssuanceConfig + *out = new(string) + **out = **in + } + if in.State != nil { + in, out := &in.State, &out.State + *out = new(string) + **out = **in + } + if in.ProvisioningIssue != nil { + in, out := &in.ProvisioningIssue, &out.ProvisioningIssue + *out = new(Certificate_ManagedCertificate_ProvisioningIssue) + (*in).DeepCopyInto(*out) + } + if in.AuthorizationAttemptInfo != nil { + in, out := &in.AuthorizationAttemptInfo, &out.AuthorizationAttemptInfo + *out = make([]Certificate_ManagedCertificate_AuthorizationAttemptInfo, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Certificate_ManagedCertificate. +func (in *Certificate_ManagedCertificate) DeepCopy() *Certificate_ManagedCertificate { + if in == nil { + return nil + } + out := new(Certificate_ManagedCertificate) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Certificate_ManagedCertificate_AuthorizationAttemptInfo) DeepCopyInto(out *Certificate_ManagedCertificate_AuthorizationAttemptInfo) { + *out = *in + if in.Domain != nil { + in, out := &in.Domain, &out.Domain + *out = new(string) + **out = **in + } + if in.State != nil { + in, out := &in.State, &out.State + *out = new(string) + **out = **in + } + if in.FailureReason != nil { + in, out := &in.FailureReason, &out.FailureReason + *out = new(string) + **out = **in + } + if in.Details != nil { + in, out := &in.Details, &out.Details + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Certificate_ManagedCertificate_AuthorizationAttemptInfo. +func (in *Certificate_ManagedCertificate_AuthorizationAttemptInfo) DeepCopy() *Certificate_ManagedCertificate_AuthorizationAttemptInfo { + if in == nil { + return nil + } + out := new(Certificate_ManagedCertificate_AuthorizationAttemptInfo) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Certificate_ManagedCertificate_ProvisioningIssue) DeepCopyInto(out *Certificate_ManagedCertificate_ProvisioningIssue) { + *out = *in + if in.Reason != nil { + in, out := &in.Reason, &out.Reason + *out = new(string) + **out = **in + } + if in.Details != nil { + in, out := &in.Details, &out.Details + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Certificate_ManagedCertificate_ProvisioningIssue. +func (in *Certificate_ManagedCertificate_ProvisioningIssue) DeepCopy() *Certificate_ManagedCertificate_ProvisioningIssue { + if in == nil { + return nil + } + out := new(Certificate_ManagedCertificate_ProvisioningIssue) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Certificate_SelfManagedCertificate) DeepCopyInto(out *Certificate_SelfManagedCertificate) { + *out = *in + if in.PemCertificate != nil { + in, out := &in.PemCertificate, &out.PemCertificate + *out = new(string) + **out = **in + } + if in.PemPrivateKey != nil { + in, out := &in.PemPrivateKey, &out.PemPrivateKey + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Certificate_SelfManagedCertificate. +func (in *Certificate_SelfManagedCertificate) DeepCopy() *Certificate_SelfManagedCertificate { + if in == nil { + return nil + } + out := new(Certificate_SelfManagedCertificate) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DnsAuthorization_DnsResourceRecord) DeepCopyInto(out *DnsAuthorization_DnsResourceRecord) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Data != nil { + in, out := &in.Data, &out.Data + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DnsAuthorization_DnsResourceRecord. +func (in *DnsAuthorization_DnsResourceRecord) DeepCopy() *DnsAuthorization_DnsResourceRecord { + if in == nil { + return nil + } + out := new(DnsAuthorization_DnsResourceRecord) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DnsauthorizationDnsResourceRecordStatus) DeepCopyInto(out *DnsauthorizationDnsResourceRecordStatus) { + *out = *in + if in.Data != nil { + in, out := &in.Data, &out.Data + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DnsauthorizationDnsResourceRecordStatus. +func (in *DnsauthorizationDnsResourceRecordStatus) DeepCopy() *DnsauthorizationDnsResourceRecordStatus { + if in == nil { + return nil + } + out := new(DnsauthorizationDnsResourceRecordStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TrustConfig) DeepCopyInto(out *TrustConfig) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime + *out = new(string) + **out = **in + } + if in.UpdateTime != nil { + in, out := &in.UpdateTime, &out.UpdateTime + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *out = new(string) + **out = **in + } + if in.TrustStores != nil { + in, out := &in.TrustStores, &out.TrustStores + *out = make([]TrustConfig_TrustStore, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrustConfig. +func (in *TrustConfig) DeepCopy() *TrustConfig { + if in == nil { + return nil + } + out := new(TrustConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TrustConfig_IntermediateCA) DeepCopyInto(out *TrustConfig_IntermediateCA) { + *out = *in + if in.PemCertificate != nil { + in, out := &in.PemCertificate, &out.PemCertificate + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrustConfig_IntermediateCA. +func (in *TrustConfig_IntermediateCA) DeepCopy() *TrustConfig_IntermediateCA { + if in == nil { + return nil + } + out := new(TrustConfig_IntermediateCA) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TrustConfig_TrustAnchor) DeepCopyInto(out *TrustConfig_TrustAnchor) { + *out = *in + if in.PemCertificate != nil { + in, out := &in.PemCertificate, &out.PemCertificate + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrustConfig_TrustAnchor. +func (in *TrustConfig_TrustAnchor) DeepCopy() *TrustConfig_TrustAnchor { + if in == nil { + return nil + } + out := new(TrustConfig_TrustAnchor) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TrustConfig_TrustStore) DeepCopyInto(out *TrustConfig_TrustStore) { + *out = *in + if in.TrustAnchors != nil { + in, out := &in.TrustAnchors, &out.TrustAnchors + *out = make([]TrustConfig_TrustAnchor, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IntermediateCas != nil { + in, out := &in.IntermediateCas, &out.IntermediateCas + *out = make([]TrustConfig_IntermediateCA, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrustConfig_TrustStore. +func (in *TrustConfig_TrustStore) DeepCopy() *TrustConfig_TrustStore { + if in == nil { + return nil + } + out := new(TrustConfig_TrustStore) + in.DeepCopyInto(out) + return out +} diff --git a/apis/firestore/v1alpha1/doc.go b/apis/firestore/v1alpha1/doc.go new file mode 100644 index 0000000000..73fb6530df --- /dev/null +++ b/apis/firestore/v1alpha1/doc.go @@ -0,0 +1,16 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +kcc:proto=google.firestore.admin.v1 +package v1alpha1 diff --git a/apis/firestore/v1alpha1/firestoredatabase_types.go b/apis/firestore/v1alpha1/firestoredatabase_types.go new file mode 100644 index 0000000000..bc3c66b1a5 --- /dev/null +++ b/apis/firestore/v1alpha1/firestoredatabase_types.go @@ -0,0 +1,152 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package v1alpha1 + +import ( + "github.com/GoogleCloudPlatform/k8s-config-connector/apis/refs/v1beta1" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/apis/k8s/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +var FirestoreDatabaseGVK = GroupVersion.WithKind("FirestoreDatabase") + +// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! +// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. + +// FirestoreDatabaseSpec defines the desired state of FirestoreDatabase +// +kcc:proto=google.firestore.admin.v1.Database +type FirestoreDatabaseSpec struct { + // Immutable. The Project that this resource belongs to. + ProjectRef v1beta1.ProjectRef `json:"projectRef"` + + // The FirestoreDatabase name. If not given, the metadata.name will be used. + // + optional + ResourceID *string `json:"resourceID,omitempty"` + + // The location of the database. Available locations are listed at + // https://cloud.google.com/firestore/docs/locations. + LocationID *string `json:"locationID,omitempty"` + + // The concurrency control mode to use for this database. + // See https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases#concurrencymode for more info. + ConcurrencyMode *string `json:"concurrencyMode,omitempty"` + + // Whether to enable the PITR feature on this database. + // See https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases#pointintimerecoveryenablement for more info. + PointInTimeRecoveryEnablement *string `json:"pointInTimeRecoveryEnablement,omitempty"` +} + +// FirestoreDatabaseStatus defines the config connector machine state of FirestoreDatabase +type FirestoreDatabaseStatus struct { + /* Conditions represent the latest available observations of the + object's current state. */ + Conditions []v1alpha1.Condition `json:"conditions,omitempty"` + + // ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + // +optional + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + + // A unique specifier for the FirestoreDatabase resource in GCP. + // +optional + ExternalRef *string `json:"externalRef,omitempty"` + + // ObservedState is the state of the resource as most recently observed in GCP. + // +optional + ObservedState *FirestoreDatabaseObservedState `json:"observedState,omitempty"` +} + +// FirestoreDatabaseSpec defines the desired state of FirestoreDatabase +// +kcc:proto=google.firestore.admin.v1.Database +type FirestoreDatabaseObservedState struct { + // Output only. The system-generated UUID4 for this Database. + Uid *string `json:"uid,omitempty"` + + // Output only. The timestamp at which this database was created. Databases + // created before 2016 do not populate create_time. + CreateTime *string `json:"createTime,omitempty"` + + // Output only. The timestamp at which this database was most recently + // updated. Note this only includes updates to the database resource and not + // data contained by the database. + UpdateTime *string `json:"updateTime,omitempty"` + + // Output only. The period during which past versions of data are retained in + // the database. + // + // Any [read][google.firestore.v1.GetDocumentRequest.read_time] + // or [query][google.firestore.v1.ListDocumentsRequest.read_time] can specify + // a `read_time` within this window, and will read the state of the database + // at that time. + // + // If the PITR feature is enabled, the retention period is 7 days. Otherwise, + // the retention period is 1 hour. + VersionRetentionPeriod *string `json:"versionRetentionPeriod,omitempty"` + + // Output only. The earliest timestamp at which older versions of the data can + // be read from the database. See [version_retention_period] above; this field + // is populated with `now - version_retention_period`. + // + // This value is continuously updated, and becomes stale the moment it is + // queried. If you are using this value to recover data, make sure to account + // for the time from the moment when the value is queried to the moment when + // you initiate the recovery. + EarliestVersionTime *string `json:"earliestVersionTime,omitempty"` + + // Output only. The key_prefix for this database. This key_prefix is used, in + // combination with the project id ("~") to construct + // the application id that is returned from the Cloud Datastore APIs in Google + // App Engine first generation runtimes. + // + // This value may be empty in which case the appid to use for URL-encoded keys + // is the project_id (eg: foo instead of v~foo). + KeyPrefix *string `json:"keyPrefix,omitempty"` + + // This checksum is computed by the server based on the value of other + // fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + Etag *string `json:"etag,omitempty"` +} + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:resource:categories=gcp +// +kubebuilder:subresource:status +// +kubebuilder:metadata:labels="cnrm.cloud.google.com/managed-by-kcc=true";"cnrm.cloud.google.com/system=true" +// +kubebuilder:printcolumn:name="Age",JSONPath=".metadata.creationTimestamp",type="date" +// +kubebuilder:printcolumn:name="Ready",JSONPath=".status.conditions[?(@.type=='Ready')].status",type="string",description="When 'True', the most recent reconcile of the resource succeeded" +// +kubebuilder:printcolumn:name="Status",JSONPath=".status.conditions[?(@.type=='Ready')].reason",type="string",description="The reason for the value in 'Ready'" +// +kubebuilder:printcolumn:name="Status Age",JSONPath=".status.conditions[?(@.type=='Ready')].lastTransitionTime",type="date",description="The last transition time for the value in 'Status'" + +// FirestoreDatabase is the Schema for the FirestoreDatabase API +// +k8s:openapi-gen=true +type FirestoreDatabase struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec FirestoreDatabaseSpec `json:"spec,omitempty"` + Status FirestoreDatabaseStatus `json:"status,omitempty"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// FirestoreDatabaseList contains a list of FirestoreDatabase +type FirestoreDatabaseList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []FirestoreDatabase `json:"items"` +} + +func init() { + SchemeBuilder.Register(&FirestoreDatabase{}, &FirestoreDatabaseList{}) +} diff --git a/apis/firestore/v1alpha1/groupversion_info.go b/apis/firestore/v1alpha1/groupversion_info.go new file mode 100644 index 0000000000..87e86dd9ce --- /dev/null +++ b/apis/firestore/v1alpha1/groupversion_info.go @@ -0,0 +1,33 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +kubebuilder:object:generate=true +// +groupName=firestore.cnrm.cloud.google.com +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +var ( + // GroupVersion is group version used to register these objects + GroupVersion = schema.GroupVersion{Group: "firestore.cnrm.cloud.google.com", Version: "v1alpha1"} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/firestore/v1alpha1/types.generated.go b/apis/firestore/v1alpha1/types.generated.go new file mode 100644 index 0000000000..b3f9464a3e --- /dev/null +++ b/apis/firestore/v1alpha1/types.generated.go @@ -0,0 +1,93 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package v1alpha1 + +/* +// +kcc:proto=google.firestore.admin.v1.Database +type Database struct { + // The resource name of the Database. + // Format: `projects/{project}/databases/{database}` + Name *string `json:"name,omitempty"` + + // Output only. The system-generated UUID4 for this Database. + Uid *string `json:"uid,omitempty"` + + // Output only. The timestamp at which this database was created. Databases + // created before 2016 do not populate create_time. + CreateTime *string `json:"createTime,omitempty"` + + // Output only. The timestamp at which this database was most recently + // updated. Note this only includes updates to the database resource and not + // data contained by the database. + UpdateTime *string `json:"updateTime,omitempty"` + + // The location of the database. Available locations are listed at + // https://cloud.google.com/firestore/docs/locations. + LocationID *string `json:"locationID,omitempty"` + + // The type of the database. + // See https://cloud.google.com/datastore/docs/firestore-or-datastore for + // information about how to choose. + Type *string `json:"type,omitempty"` + + // The concurrency control mode to use for this database. + ConcurrencyMode *string `json:"concurrencyMode,omitempty"` + + // Output only. The period during which past versions of data are retained in + // the database. + // + // Any [read][google.firestore.v1.GetDocumentRequest.read_time] + // or [query][google.firestore.v1.ListDocumentsRequest.read_time] can specify + // a `read_time` within this window, and will read the state of the database + // at that time. + // + // If the PITR feature is enabled, the retention period is 7 days. Otherwise, + // the retention period is 1 hour. + VersionRetentionPeriod *string `json:"versionRetentionPeriod,omitempty"` + + // Output only. The earliest timestamp at which older versions of the data can + // be read from the database. See [version_retention_period] above; this field + // is populated with `now - version_retention_period`. + // + // This value is continuously updated, and becomes stale the moment it is + // queried. If you are using this value to recover data, make sure to account + // for the time from the moment when the value is queried to the moment when + // you initiate the recovery. + EarliestVersionTime *string `json:"earliestVersionTime,omitempty"` + + // Whether to enable the PITR feature on this database. + PointInTimeRecoveryEnablement *string `json:"pointInTimeRecoveryEnablement,omitempty"` + + // The App Engine integration mode to use for this database. + AppEngineIntegrationMode *string `json:"appEngineIntegrationMode,omitempty"` + + // Output only. The key_prefix for this database. This key_prefix is used, in + // combination with the project id ("~") to construct + // the application id that is returned from the Cloud Datastore APIs in Google + // App Engine first generation runtimes. + // + // This value may be empty in which case the appid to use for URL-encoded keys + // is the project_id (eg: foo instead of v~foo). + KeyPrefix *string `json:"keyPrefix,omitempty"` + + // State of delete protection for the database. + DeleteProtectionState *string `json:"deleteProtectionState,omitempty"` + + // This checksum is computed by the server based on the value of other + // fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + Etag *string `json:"etag,omitempty"` +} +*/ diff --git a/apis/firestore/v1alpha1/zz_generated.deepcopy.go b/apis/firestore/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000000..a91a0ea697 --- /dev/null +++ b/apis/firestore/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,190 @@ +//go:build !ignore_autogenerated + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + k8sv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/apis/k8s/v1alpha1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FirestoreDatabase) DeepCopyInto(out *FirestoreDatabase) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirestoreDatabase. +func (in *FirestoreDatabase) DeepCopy() *FirestoreDatabase { + if in == nil { + return nil + } + out := new(FirestoreDatabase) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FirestoreDatabase) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FirestoreDatabaseList) DeepCopyInto(out *FirestoreDatabaseList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]FirestoreDatabase, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirestoreDatabaseList. +func (in *FirestoreDatabaseList) DeepCopy() *FirestoreDatabaseList { + if in == nil { + return nil + } + out := new(FirestoreDatabaseList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FirestoreDatabaseList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FirestoreDatabaseObservedState) DeepCopyInto(out *FirestoreDatabaseObservedState) { + *out = *in + if in.Uid != nil { + in, out := &in.Uid, &out.Uid + *out = new(string) + **out = **in + } + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime + *out = new(string) + **out = **in + } + if in.UpdateTime != nil { + in, out := &in.UpdateTime, &out.UpdateTime + *out = new(string) + **out = **in + } + if in.VersionRetentionPeriod != nil { + in, out := &in.VersionRetentionPeriod, &out.VersionRetentionPeriod + *out = new(string) + **out = **in + } + if in.EarliestVersionTime != nil { + in, out := &in.EarliestVersionTime, &out.EarliestVersionTime + *out = new(string) + **out = **in + } + if in.KeyPrefix != nil { + in, out := &in.KeyPrefix, &out.KeyPrefix + *out = new(string) + **out = **in + } + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirestoreDatabaseObservedState. +func (in *FirestoreDatabaseObservedState) DeepCopy() *FirestoreDatabaseObservedState { + if in == nil { + return nil + } + out := new(FirestoreDatabaseObservedState) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FirestoreDatabaseSpec) DeepCopyInto(out *FirestoreDatabaseSpec) { + *out = *in + out.ProjectRef = in.ProjectRef + if in.ResourceID != nil { + in, out := &in.ResourceID, &out.ResourceID + *out = new(string) + **out = **in + } + if in.LocationID != nil { + in, out := &in.LocationID, &out.LocationID + *out = new(string) + **out = **in + } + if in.ConcurrencyMode != nil { + in, out := &in.ConcurrencyMode, &out.ConcurrencyMode + *out = new(string) + **out = **in + } + if in.PointInTimeRecoveryEnablement != nil { + in, out := &in.PointInTimeRecoveryEnablement, &out.PointInTimeRecoveryEnablement + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirestoreDatabaseSpec. +func (in *FirestoreDatabaseSpec) DeepCopy() *FirestoreDatabaseSpec { + if in == nil { + return nil + } + out := new(FirestoreDatabaseSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FirestoreDatabaseStatus) DeepCopyInto(out *FirestoreDatabaseStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]k8sv1alpha1.Condition, len(*in)) + copy(*out, *in) + } + if in.ObservedGeneration != nil { + in, out := &in.ObservedGeneration, &out.ObservedGeneration + *out = new(int64) + **out = **in + } + if in.ExternalRef != nil { + in, out := &in.ExternalRef, &out.ExternalRef + *out = new(string) + **out = **in + } + if in.ObservedState != nil { + in, out := &in.ObservedState, &out.ObservedState + *out = new(FirestoreDatabaseObservedState) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirestoreDatabaseStatus. +func (in *FirestoreDatabaseStatus) DeepCopy() *FirestoreDatabaseStatus { + if in == nil { + return nil + } + out := new(FirestoreDatabaseStatus) + in.DeepCopyInto(out) + return out +} diff --git a/apis/gkehub/v1beta1/gkehubfeaturemembership_types.go b/apis/gkehub/v1beta1/gkehubfeaturemembership_types.go index 5621c9577d..1c1ead7e8a 100644 --- a/apis/gkehub/v1beta1/gkehubfeaturemembership_types.go +++ b/apis/gkehub/v1beta1/gkehubfeaturemembership_types.go @@ -70,7 +70,7 @@ type FeaturemembershipConfigmanagement struct { // +optional ConfigSync *FeaturemembershipConfigSync `json:"configSync,omitempty"` - /* **DEPRECATED** Configuring Hierarchy Controller through the configmanagement feature is no longer recommended. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead. */ + /* Hierarchy Controller is no longer available. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead. */ // +optional HierarchyController *FeaturemembershipHierarchyController `json:"hierarchyController,omitempty"` diff --git a/apis/refs/v1beta1/alertpolicyref.go b/apis/refs/v1beta1/alertpolicyref.go index 2e555853c7..e5a5450f3a 100644 --- a/apis/refs/v1beta1/alertpolicyref.go +++ b/apis/refs/v1beta1/alertpolicyref.go @@ -15,7 +15,7 @@ package v1beta1 type MonitoringAlertPolicyRef struct { - /* The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by KCC. */ + /* The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by Config Connector. */ External string `json:"external,omitempty"` /* The `name` field of a `MonitoringAlertPolicy` resource. */ Name string `json:"name,omitempty"` diff --git a/apis/refs/v1beta1/computerefs.go b/apis/refs/v1beta1/computerefs.go index 81b93f0a24..49ba2205ba 100644 --- a/apis/refs/v1beta1/computerefs.go +++ b/apis/refs/v1beta1/computerefs.go @@ -105,7 +105,7 @@ func ResolveComputeNetwork(ctx context.Context, reader client.Reader, src client } type ComputeSubnetworkRef struct { - /* The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", when not managed by KCC. */ + /* The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", when not managed by Config Connector. */ External string `json:"external,omitempty"` /* The `name` field of a `ComputeSubnetwork` resource. */ Name string `json:"name,omitempty"` @@ -180,7 +180,7 @@ func ResolveComputeSubnetwork(ctx context.Context, reader client.Reader, src cli } type ComputeAddressRef struct { - /* The ComputeAddress selflink in the form "projects/{{project}}/regions/{{region}}/addresses/{{name}}" when not managed by KCC. */ + /* The ComputeAddress selflink in the form "projects/{{project}}/regions/{{region}}/addresses/{{name}}" when not managed by Config Connector. */ External string `json:"external,omitempty"` /* The `name` field of a `ComputeAddress` resource. */ Name string `json:"name,omitempty"` @@ -189,7 +189,7 @@ type ComputeAddressRef struct { } type ComputeBackendServiceRef struct { - /* The ComputeBackendService selflink in the form "projects/{{project}}/global/backendServices/{{name}}" or "projects/{{project}}/regions/{{region}}/backendServices/{{name}}" when not managed by KCC. */ + /* The ComputeBackendService selflink in the form "projects/{{project}}/global/backendServices/{{name}}" or "projects/{{project}}/regions/{{region}}/backendServices/{{name}}" when not managed by Config Connector. */ External string `json:"external,omitempty"` /* The `name` field of a `ComputeBackendService` resource. */ Name string `json:"name,omitempty"` @@ -198,7 +198,7 @@ type ComputeBackendServiceRef struct { } type ComputeServiceAttachmentRef struct { - /* The ComputeServiceAttachment selflink in the form "projects/{{project}}/regions/{{region}}/serviceAttachments/{{name}}" when not managed by KCC. */ + /* The ComputeServiceAttachment selflink in the form "projects/{{project}}/regions/{{region}}/serviceAttachments/{{name}}" when not managed by Config Connector. */ External string `json:"external,omitempty"` /* The `name` field of a `ComputeServiceAttachment` resource. */ Name string `json:"name,omitempty"` @@ -207,7 +207,7 @@ type ComputeServiceAttachmentRef struct { } type ComputeTargetGrpcProxyRef struct { - /* The ComputeTargetGrpcProxy selflink in the form "projects/{{project}}/global/targetGrpcProxies/{{name}}" when not managed by KCC. */ + /* The ComputeTargetGrpcProxy selflink in the form "projects/{{project}}/global/targetGrpcProxies/{{name}}" when not managed by Config Connector. */ External string `json:"external,omitempty"` /* The `name` field of a `ComputeTargetGrpcProxy` resource. */ Name string `json:"name,omitempty"` @@ -216,7 +216,7 @@ type ComputeTargetGrpcProxyRef struct { } type ComputeTargetHTTPProxyRef struct { - /* The ComputeTargetHTTPProxy selflink in the form "projects/{{project}}/global/targetHttpProxies/{{name}}" or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" when not managed by KCC. */ + /* The ComputeTargetHTTPProxy selflink in the form "projects/{{project}}/global/targetHttpProxies/{{name}}" or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" when not managed by Config Connector. */ External string `json:"external,omitempty"` /* The `name` field of a `ComputeTargetHTTPProxy` resource. */ Name string `json:"name,omitempty"` @@ -225,7 +225,7 @@ type ComputeTargetHTTPProxyRef struct { } type ComputeTargetHTTPSProxyRef struct { - /* The ComputeTargetHTTPSProxy selflink in the form "projects/{{project}}/global/targetHttpProxies/{{name}}" or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" when not managed by KCC. */ + /* The ComputeTargetHTTPSProxy selflink in the form "projects/{{project}}/global/targetHttpProxies/{{name}}" or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" when not managed by Config Connector. */ External string `json:"external,omitempty"` /* The `name` field of a `ComputeTargetHTTPSProxy` resource. */ Name string `json:"name,omitempty"` @@ -234,7 +234,7 @@ type ComputeTargetHTTPSProxyRef struct { } type ComputeTargetSSLProxyRef struct { - /* The ComputeTargetSSLProxy selflink in the form "projects/{{project}}/global/targetSslProxies/{{name}}" when not managed by KCC. */ + /* The ComputeTargetSSLProxy selflink in the form "projects/{{project}}/global/targetSslProxies/{{name}}" when not managed by Config Connector. */ External string `json:"external,omitempty"` /* The `name` field of a `ComputeTargetSSLProxy` resource. */ Name string `json:"name,omitempty"` @@ -243,7 +243,7 @@ type ComputeTargetSSLProxyRef struct { } type ComputeTargetTCPProxyRef struct { - /* The ComputeTargetTCPProxy selflink in the form "projects/{{project}}/global/targetTcpProxies/{{name}}" or "projects/{{project}}/regions/{{region}}/targetTcpProxies/{{name}}" when not managed by KCC. */ + /* The ComputeTargetTCPProxy selflink in the form "projects/{{project}}/global/targetTcpProxies/{{name}}" or "projects/{{project}}/regions/{{region}}/targetTcpProxies/{{name}}" when not managed by Config Connector. */ External string `json:"external,omitempty"` /* The `name` field of a `ComputeTargetTCPProxy` resource. */ Name string `json:"name,omitempty"` @@ -252,7 +252,7 @@ type ComputeTargetTCPProxyRef struct { } type ComputeTargetVPNGatewayRef struct { - /* The ComputeTargetVPNGateway selflink in the form "projects/{{project}}/regions/{{region}}/targetVpnGateways/{{name}}" when not managed by KCC. */ + /* The ComputeTargetVPNGateway selflink in the form "projects/{{project}}/regions/{{region}}/targetVpnGateways/{{name}}" when not managed by Config Connector. */ External string `json:"external,omitempty"` /* The `name` field of a `ComputeTargetVPNGateway` resource. */ Name string `json:"name,omitempty"` diff --git a/apis/refs/v1beta1/projectref.go b/apis/refs/v1beta1/projectref.go index 6b94c83e6a..904aae64b8 100644 --- a/apis/refs/v1beta1/projectref.go +++ b/apis/refs/v1beta1/projectref.go @@ -29,7 +29,7 @@ import ( // The Project that this resource belongs to. type ProjectRef struct { - /* The `projectID` field of a project, when not managed by KCC. */ + /* The `projectID` field of a project, when not managed by Config Connector. */ External string `json:"external,omitempty"` /* The `name` field of a `Project` resource. */ Name string `json:"name,omitempty"` diff --git a/config/cloudcodesnippets/gkehub_v1beta1_gkehubfeaturemembership.yaml b/config/cloudcodesnippets/gkehub_v1beta1_gkehubfeaturemembership.yaml index b6f42e28a5..9d9007765b 100644 --- a/config/cloudcodesnippets/gkehub_v1beta1_gkehubfeaturemembership.yaml +++ b/config/cloudcodesnippets/gkehub_v1beta1_gkehubfeaturemembership.yaml @@ -9,29 +9,16 @@ insertText: | projectRef: name: \${2:gkehubfeaturemembership-dep-acm} location: \${3:global} + membershipLocation: \${4:us-central1} membershipRef: - name: \${4:gkehubfeaturemembership-dep-acm} - featureRef: name: \${5:gkehubfeaturemembership-dep-acm} + featureRef: + name: \${6:gkehubfeaturemembership-dep-acm} configmanagement: configSync: - sourceFormat: \${6:unstructured} + sourceFormat: \${7:unstructured} git: - syncRepo: \${7:https://github.com/GoogleCloudPlatform/cloud-foundation-toolkit} - syncBranch: \${8:master} - policyDir: \${9:config-connector} - syncWaitSecs: \${10:20} - syncRev: \${11:HEAD} - secretType: \${12:none} - policyController: - enabled: \${13:true} - exemptableNamespaces: - - \${14:test-namespace} - referentialRulesEnabled: \${15:true} - logDeniesEnabled: \${16:true} - templateLibraryInstalled: \${17:true} - auditIntervalSeconds: \${18:20} - hierarchyController: - enabled: \${19:true} - enablePodTreeLabels: \${20:true} - enableHierarchicalResourceQuota: \${21:true} + syncRepo: \${8:https://github.com/GoogleCloudPlatform/anthos-config-management-samples} + syncBranch: \${9:main} + policyDir: \${10:config-sync-quickstart/multirepo/root} + secretType: \${11:none} diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_apikeyskeys.apikeys.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_apikeyskeys.apikeys.cnrm.cloud.google.com.yaml index d57e43f08a..f6a2109131 100644 --- a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_apikeyskeys.apikeys.cnrm.cloud.google.com.yaml +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_apikeyskeys.apikeys.cnrm.cloud.google.com.yaml @@ -83,7 +83,7 @@ spec: properties: external: description: The `projectID` field of a project, when not managed - by KCC. + by Config Connector. type: string kind: description: The kind of the Project resource; optional but must diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_bigqueryconnectionconnections.bigqueryconnection.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_bigqueryconnectionconnections.bigqueryconnection.cnrm.cloud.google.com.yaml index 3633ed56a2..91020b30b5 100644 --- a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_bigqueryconnectionconnections.bigqueryconnection.cnrm.cloud.google.com.yaml +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_bigqueryconnectionconnections.bigqueryconnection.cnrm.cloud.google.com.yaml @@ -6,9 +6,7 @@ metadata: creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" name: bigqueryconnectionconnections.bigqueryconnection.cnrm.cloud.google.com spec: group: bigqueryconnection.cnrm.cloud.google.com @@ -16,6 +14,7 @@ spec: categories: - gcp kind: BigQueryConnectionConnection + listKind: BigQueryConnectionConnectionList plural: bigqueryconnectionconnections shortNames: - gcpbigqueryconnectionconnection @@ -43,48 +42,42 @@ spec: name: v1alpha1 schema: openAPIV3Schema: + description: BigQueryConnectionConnection is the Schema for the BigQueryConnectionConnection + API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: + description: BigQueryConnectionConnectionSpec defines the desired state + to connect BigQuery to external resources properties: cloudResource: - description: Container for connection properties for delegation of - access to GCP resources. - properties: - serviceAccountId: - description: The account ID of the service created for the purpose - of this connection. - type: string + description: Use Cloud Resource properties. type: object description: - description: A descriptive description for the connection. + description: User provided description. type: string friendlyName: - description: A descriptive name for the connection. + description: User provided display name for the connection. type: string location: - description: |- - Immutable. The geographic location where the connection should reside. - Cloud SQL instance must be in the same location as the connection - with following exceptions: Cloud SQL us-central1 maps to BigQuery US, Cloud SQL europe-west1 maps to BigQuery EU. - Examples: US, EU, asia-northeast1, us-central1, europe-west1. - Spanner Connections same as spanner region - AWS allowed regions are aws-us-east-1 - Azure allowed regions are azure-eastus2. + description: Immutable. type: string + x-kubernetes-validations: + - message: Location field is immutable + rule: self == oldSelf projectRef: - description: The project that this resource belongs to. + description: The Project that this resource belongs to. oneOf: - not: required: @@ -101,29 +94,37 @@ spec: - external properties: external: - description: 'Allowed value: The `name` field of a `Project` resource.' + description: The `projectID` field of a project, when not managed + by Config Connector. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `Project` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `Project` resource. type: string type: object resourceID: - description: Immutable. Optional. The connectionId of the resource. - Used for creation and acquisition. When unset, the value of `metadata.name` - is used as the default. + description: The BigQuery ConnectionID. This is a server-generated + ID in the UUID format. If not provided, ConfigConnector will create + a new Connection and store the UUID in `status.serviceGeneratedID` + field. type: string required: - location - projectRef type: object status: + description: BigQueryConnectionConnectionStatus defines the config connector + machine state of BigQueryConnectionConnection properties: conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -147,13 +148,9 @@ spec: type: string type: object type: array - hasCredential: - description: True if the connection has credential assigned. - type: boolean - name: - description: |- - The resource name of the connection in the form of: - "projects/{project_id}/locations/{location_id}/connections/{connectionId}". + externalRef: + description: A unique specifier for the BigQueryConnectionConnection + resource in GCP. type: string observedGeneration: description: ObservedGeneration is the generation of the resource @@ -161,31 +158,43 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer observedState: - description: The observed state of the underlying GCP resource. + description: ObservedState is the state of the resource as most recently + observed in GCP. properties: cloudResource: - description: Container for connection properties for delegation - of access to GCP resources. properties: - serviceAccountId: - description: The account ID of the service created for the - purpose of this connection. + serviceAccountID: + description: |- + Output only. The account ID of the service created for the purpose of this + connection. + + The service account does not have any permissions associated with it + when it is created. After creation, customers delegate permissions + to the service account. When the connection is used in the context of an + operation in BigQuery, the service account will be used to connect to the + desired resources in GCP. + + The account ID is in the form of: + @gcp-sa-bigquery-cloudresource.iam.gserviceaccount.com type: string type: object + description: + description: The description for the connection. + type: string + friendlyName: + description: The display name for the connection. + type: string + hasCredential: + description: Output only. True, if credential is configured for + this connection. + type: boolean type: object type: object - required: - - spec type: object served: true storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_bigquerydatasets.bigquery.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_bigquerydatasets.bigquery.cnrm.cloud.google.com.yaml index a08c53eac9..79e9b84f67 100644 --- a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_bigquerydatasets.bigquery.cnrm.cloud.google.com.yaml +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_bigquerydatasets.bigquery.cnrm.cloud.google.com.yaml @@ -16,7 +16,6 @@ spec: categories: - gcp kind: BigQueryDataset - listKind: BigQueryDatasetList plural: bigquerydatasets shortNames: - gcpbigquerydataset @@ -44,22 +43,20 @@ spec: name: v1beta1 schema: openAPIV3Schema: - description: BigQueryDataset is the Schema for the BigQueryDataset API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation + description: 'apiVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' type: string kind: - description: 'Kind is a string value representing the REST resource this + description: 'kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' type: string metadata: type: object spec: - description: BigQueryDatasetSpec defines the desired state of BigQueryDataset properties: access: description: An array of objects that define dataset access for one @@ -67,33 +64,26 @@ spec: items: properties: dataset: - description: '[Pick one] A grant authorizing all resources of - a particular type in a particular dataset access to this dataset. - Only views are supported for now. The role field is not required - when this field is set. If that dataset is deleted and re-created, - its access needs to be granted again via an update operation.' + description: Grants all resources of particular types in a particular + dataset read access to the current dataset. properties: dataset: description: The dataset this entry applies to. properties: datasetId: - description: Required. A unique ID for this dataset, - without the project name. The ID must contain only - letters (a-z, A-Z), numbers (0-9), or underscores - (_). The maximum length is 1,024 characters. + description: The ID of the dataset containing this table. type: string projectId: - description: Required. The ID of the project containing - this dataset. + description: The ID of the project containing this table. type: string required: - datasetId - projectId type: object targetTypes: - description: Which resources in the dataset this entry applies - to. Currently, only views are supported, but additional - target types may be added in the future. + description: |- + Which resources in the dataset this entry applies to. Currently, only views are supported, + but additional target types may be added in the future. Possible values: VIEWS. items: type: string type: array @@ -102,55 +92,46 @@ spec: - targetTypes type: object domain: - description: '[Pick one] A domain to grant access to. Any users - signed in with the domain specified will be granted the specified - access. Example: "example.com". Maps to IAM policy member - "domain:DOMAIN".' + description: |- + A domain to grant access to. Any users signed in with the + domain specified will be granted the specified access. type: string groupByEmail: - description: '[Pick one] An email address of a Google Group - to grant access to. Maps to IAM policy member "group:GROUP".' + description: An email address of a Google Group to grant access + to. type: string iamMember: - description: '[Pick one] Some other type of member that appears - in the IAM Policy but isn''t a user, group, domain, or special - group.' + description: |- + Some other type of member that appears in the IAM Policy but isn't a user, + group, domain, or special group. For example: 'allUsers'. type: string role: description: |- - An IAM role ID that should be granted to the user, group, - or domain specified in this access entry. - The following legacy mappings will be applied: - - * `OWNER`: `roles/bigquery.dataOwner` - * `WRITER`: `roles/bigquery.dataEditor` - * `READER`: `roles/bigquery.dataViewer` - - This field will accept any of the above formats, but will return only - the legacy format. For example, if you set this field to - "roles/bigquery.dataOwner", it will be returned back as "OWNER". + Describes the rights granted to the user specified by the other + member of the access object. Basic, predefined, and custom roles + are supported. Predefined roles that have equivalent basic roles + are swapped by the API to their basic counterparts. See + [official docs](https://cloud.google.com/bigquery/docs/access-control). type: string routine: - description: '[Pick one] A routine from a different dataset - to grant access to. Queries executed against that routine - will have read access to views/tables/routines in this dataset. - Only UDF is supported for now. The role field is not required - when this field is set. If that routine is updated by any - user, access to the routine needs to be granted again via - an update operation.' + description: |- + A routine from a different dataset to grant access to. Queries + executed against that routine will have read access to tables in + this dataset. The role field is not required when this field is + set. If that routine is updated by any user, access to the routine + needs to be granted again via an update operation. properties: datasetId: - description: Required. The ID of the dataset containing - this routine. + description: The ID of the dataset containing this table. type: string projectId: - description: Required. The ID of the project containing - this routine. + description: The ID of the project containing this table. type: string routineId: - description: Required. The ID of the routine. The ID must - contain only letters (a-z, A-Z), numbers (0-9), or underscores - (_). The maximum length is 256 characters. + description: |- + The ID of the routine. The ID must contain only letters (a-z, + A-Z), numbers (0-9), or underscores (_). The maximum length + is 256 characters. type: string required: - datasetId @@ -159,44 +140,44 @@ spec: type: object specialGroup: description: |- - [Pick one] A special group to grant access to. Possible values include: + A special group to grant access to. Possible values include: + + + * 'projectOwners': Owners of the enclosing project. - * projectOwners: Owners of the enclosing project. - * projectReaders: Readers of the enclosing project. - * projectWriters: Writers of the enclosing project. - * allAuthenticatedUsers: All authenticated BigQuery users. - Maps to similarly-named IAM members. + * 'projectReaders': Readers of the enclosing project. + + + * 'projectWriters': Writers of the enclosing project. + + + * 'allAuthenticatedUsers': All authenticated BigQuery users. type: string userByEmail: - description: '[Pick one] An email address of a user to grant - access to. For example: fred@example.com. Maps to IAM policy - member "user:EMAIL" or "serviceAccount:EMAIL".' + description: |- + An email address of a user to grant access to. For example: + fred@example.com. type: string view: - description: '[Pick one] A view from a different dataset to - grant access to. Queries executed against that view will have - read access to views/tables/routines in this dataset. The - role field is not required when this field is set. If that - view is updated by any user, access to the view needs to be - granted again via an update operation.' + description: |- + A view from a different dataset to grant access to. Queries + executed against that view will have read access to tables in + this dataset. The role field is not required when this field is + set. If that view is updated by any user, access to the view + needs to be granted again via an update operation. properties: datasetId: - description: Required. The ID of the dataset containing - this table. + description: The ID of the dataset containing this table. type: string projectId: - description: Required. The ID of the project containing - this table. + description: The ID of the project containing this table. type: string tableId: - description: Required. The ID of the table. The ID can contain - Unicode characters in category L (letter), M (mark), N - (number), Pc (connector, including underscore), Pd (dash), - and Zs (space). For more information, see [General Category](https://wikipedia.org/wiki/Unicode_character_property#General_Category). - The maximum length is 1,024 characters. Certain operations - allow suffixing of the table ID with a partition decorator, - such as `sample_table$20190123`. + description: |- + The ID of the table. The ID must contain only letters (a-z, + A-Z), numbers (0-9), or underscores (_). The maximum length + is 1,024 characters. type: string required: - datasetId @@ -207,27 +188,27 @@ spec: type: array defaultCollation: description: |- - Optional. Defines the default collation specification of future tables - created in the dataset. If a table is created in this dataset without - table-level default collation, then the table inherits the dataset default - collation, which is applied to the string fields that do not have explicit - collation specified. A change to this field affects only tables created - afterwards, and does not alter the existing tables. - The following values are supported: + Defines the default collation specification of future tables created + in the dataset. If a table is created in this dataset without table-level + default collation, then the table inherits the dataset default collation, + which is applied to the string fields that do not have explicit collation + specified. A change to this field affects only tables created afterwards, + and does not alter the existing tables. - * 'und:ci': undetermined locale, case insensitive. - * '': empty string. Default to case-sensitive behavior. + The following values are supported: + - 'und:ci': undetermined locale, case insensitive. + - '': empty string. Default to case-sensitive behavior. type: string defaultEncryptionConfiguration: - description: The default encryption key for all tables in the dataset. - After this property is set, the encryption key of all newly-created - tables in the dataset is set to this value unless the table creation - request or query explicitly overrides the key. + description: |- + The default encryption key for all tables in the dataset. Once this property is set, + all newly-created partitioned tables in the dataset will have encryption key set to + this value, unless table creation request (or query) overrides the key. properties: kmsKeyRef: - description: Optional. Describes the Cloud KMS encryption key - that will be used to protect destination BigQuery table. The - BigQuery Service Account associated with your project requires + description: |- + Describes the Cloud KMS encryption key that will be used to protect destination + BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key. oneOf: - not: @@ -245,71 +226,86 @@ spec: - external properties: external: - description: A reference to an externally managed KMSCryptoKey. - Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. + description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` + resource.' type: string name: - description: The `name` of a `KMSCryptoKey` resource. + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: The `namespace` of a `KMSCryptoKey` resource. + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string type: object + required: + - kmsKeyRef type: object defaultPartitionExpirationMs: description: |- - This default partition expiration, expressed in milliseconds. + The default partition expiration for all partitioned tables in + the dataset, in milliseconds. - When new time-partitioned tables are created in a dataset where this - property is set, the table will inherit this value, propagated as the - `TimePartitioning.expirationMs` property on the new table. If you set - `TimePartitioning.expirationMs` explicitly when creating a table, - the `defaultPartitionExpirationMs` of the containing dataset is ignored. - When creating a partitioned table, if `defaultPartitionExpirationMs` - is set, the `defaultTableExpirationMs` value is ignored and the table - will not be inherit a table expiration deadline. - format: int64 + Once this property is set, all newly-created partitioned tables in + the dataset will have an 'expirationMs' property in the 'timePartitioning' + settings set to this value, and changing the value will only + affect new tables, not existing ones. The storage in a partition will + have an expiration time of its partition time plus this value. + Setting this property overrides the use of 'defaultTableExpirationMs' + for partitioned tables: only one of 'defaultTableExpirationMs' and + 'defaultPartitionExpirationMs' will be used for any new partitioned + table. If you provide an explicit 'timePartitioning.expirationMs' when + creating or updating a partitioned table, that value takes precedence + over the default partition expiration time indicated by this property. type: integer defaultTableExpirationMs: - description: Optional. The default lifetime of all tables in the dataset, - in milliseconds. The minimum lifetime value is 3600000 milliseconds - (one hour). To clear an existing default expiration with a PATCH - request, set to 0. Once this property is set, all newly-created - tables in the dataset will have an expirationTime property set to - the creation time plus the value in this property, and changing - the value will only affect new tables, not existing ones. When the - expirationTime for a given table is reached, that table will be - deleted automatically. If a table's expirationTime is modified or - removed before the table expires, or if you provide an explicit - expirationTime when creating a table, that value takes precedence - over the default expiration time indicated by this property. - format: int64 + description: |- + The default lifetime of all tables in the dataset, in milliseconds. + The minimum value is 3600000 milliseconds (one hour). + + + Once this property is set, all newly-created tables in the dataset + will have an 'expirationTime' property set to the creation time plus + the value in this property, and changing the value will only affect + new tables, not existing ones. When the 'expirationTime' for a given + table is reached, that table will be deleted automatically. + If a table's 'expirationTime' is modified or removed before the + table expires, or if you provide an explicit 'expirationTime' when + creating a table, that value takes precedence over the default + expiration time indicated by this property. type: integer description: - description: Optional. A user-friendly description of the dataset. + description: A user-friendly description of the dataset. type: string friendlyName: - description: Optional. A descriptive name for the dataset. + description: A descriptive name for the dataset. type: string isCaseInsensitive: - description: Optional. TRUE if the dataset and its table names are - case-insensitive, otherwise FALSE. By default, this is FALSE, which - means the dataset and its table names are case-sensitive. This field - does not affect routine references. + description: |- + TRUE if the dataset and its table names are case-insensitive, otherwise FALSE. + By default, this is FALSE, which means the dataset and its table names are + case-sensitive. This field does not affect routine references. type: boolean location: - description: The geographic location where the dataset should reside. - See https://cloud.google.com/bigquery/docs/locations for supported - locations. + description: |- + Immutable. The geographic location where the dataset should reside. + See [official docs](https://cloud.google.com/bigquery/docs/dataset-locations). + + + There are two types of locations, regional or multi-regional. A regional + location is a specific geographic place, such as Tokyo, and a multi-regional + location is a large geographic area, such as the United States, that + contains at least two geographic places. + + + The default value is multi-regional location 'US'. + Changing this forces a new resource to be created. type: string maxTimeTravelHours: - description: Optional. Defines the time travel window in hours. The - value can be from 48 to 168 hours (2 to 7 days). The default value - is 168 hours if this is not set. + description: Defines the time travel window in hours. The value can + be from 48 to 168 hours (2 to 7 days). type: string projectRef: - description: The project that this resource belongs to. optional. + description: The project that this resource belongs to. oneOf: - not: required: @@ -326,35 +322,34 @@ spec: - external properties: external: - description: The `projectID` field of a project, when not managed - by KCC. - type: string - kind: - description: The kind of the Project resource; optional but must - be `Project` if provided. + description: 'Allowed value: The `name` field of a `Project` resource.' type: string name: - description: The `name` field of a `Project` resource. + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' type: string namespace: - description: The `namespace` field of a `Project` resource. + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' type: string type: object resourceID: - description: The BigQueryDataset name. If not given, the metadata.name - will be used. + description: Immutable. Optional. The datasetId of the resource. Used + for creation and acquisition. When unset, the value of `metadata.name` + is used as the default. type: string storageBillingModel: - description: Optional. Updates storage_billing_model for the dataset. + description: |- + Specifies the storage billing model for the dataset. + Set this flag value to LOGICAL to use logical bytes for storage billing, + or to PHYSICAL to use physical bytes instead. + + LOGICAL is the default if this flag isn't specified. type: string type: object status: - description: BigQueryDatasetStatus defines the config connector machine - state of BigQueryDataset properties: conditions: - description: Conditions represent the latest available observations - of the object's current state. + description: Conditions represent the latest available observation + of the resource's current state. items: properties: lastTransitionTime: @@ -379,17 +374,17 @@ spec: type: object type: array creationTime: - description: Output only. The time when this dataset was created, - in milliseconds since the epoch. - format: int64 + description: |- + The time when this dataset was created, in milliseconds since the + epoch. type: integer etag: - description: Output only. A hash of the resource. + description: A hash of the resource. type: string lastModifiedTime: - description: Output only. The date when this dataset was last modified, - in milliseconds since the epoch. - format: int64 + description: |- + The date when this dataset or any of its tables was last modified, in + milliseconds since the epoch. type: integer observedGeneration: description: ObservedGeneration is the generation of the resource @@ -397,11 +392,8 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. - format: int64 type: integer selfLink: - description: Output only. A URL that can be used to access the resource - again. You can use this URL in Get or Update requests to the resource. type: string type: object type: object @@ -409,3 +401,9 @@ spec: storage: true subresources: status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_certificatemanagerdnsauthorizations.certificatemanager.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_certificatemanagerdnsauthorizations.certificatemanager.cnrm.cloud.google.com.yaml index 6dc4116ab1..1c50a13fec 100644 --- a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_certificatemanagerdnsauthorizations.certificatemanager.cnrm.cloud.google.com.yaml +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_certificatemanagerdnsauthorizations.certificatemanager.cnrm.cloud.google.com.yaml @@ -16,6 +16,7 @@ spec: categories: - gcp kind: CertificateManagerDNSAuthorization + listKind: CertificateManagerDNSAuthorizationList plural: certificatemanagerdnsauthorizations shortNames: - gcpcertificatemanagerdnsauthorization @@ -40,33 +41,40 @@ spec: jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime name: Status Age type: date - name: v1beta1 + name: v1alpha1 schema: openAPIV3Schema: + description: CertificateManagerDNSAuthorization is the Schema for the CertificateManagerDNSAuthorization + API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: + description: CertificateManagerDNSAuthorizationSpec defines the desired + state of CertificateManagerDNSAuthorization properties: description: description: A human-readable description of the resource. type: string domain: - description: |- - Immutable. A domain which is being authorized. A DnsAuthorization resource covers a - single domain and its wildcard, e.g. authorization for "example.com" can - be used to issue certificates for "example.com" and "*.example.com". + description: Immutable. A domain which is being authorized. A DnsAuthorization + resource covers a single domain and its wildcard, e.g. authorization + for "example.com" can be used to issue certificates for "example.com" + and "*.example.com". type: string + x-kubernetes-validations: + - message: Domain field is immutable + rule: self == oldSelf projectRef: description: The project that this resource belongs to. oneOf: @@ -85,13 +93,18 @@ spec: - external properties: external: - description: 'Allowed value: The `name` field of a `Project` resource.' + description: The `projectID` field of a project, when not managed + by Config Connector. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `Project` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `Project` resource. type: string type: object resourceID: @@ -99,15 +112,20 @@ spec: creation and acquisition. When unset, the value of `metadata.name` is used as the default. type: string + x-kubernetes-validations: + - message: ResourceID field is immutable + rule: self == oldSelf required: - domain - projectRef type: object status: + description: CertificateManagerDNSAuthorizationStatus defines the config + connector machine state of CertificateManagerDNSAuthorization properties: conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the CertificateManagerDNSAuthorization's current state. items: properties: lastTransitionTime: @@ -132,18 +150,16 @@ spec: type: object type: array dnsResourceRecord: - description: |- - The structure describing the DNS Resource Record that needs to be added - to DNS configuration for the authorization to be usable by - certificate. + description: The structure describing the DNS Resource Record that + needs to be added to DNS configuration for the authorization to + be usable by certificate. items: properties: data: description: Data of the DNS Resource Record. type: string name: - description: |- - Fully qualified name of the DNS Resource Record. + description: Fully qualified name of the DNS Resource Record. E.g. '_acme-challenge.example.com'. type: string type: @@ -157,6 +173,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer type: object required: @@ -182,33 +199,40 @@ spec: jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime name: Status Age type: date - name: v1alpha1 + name: v1beta1 schema: openAPIV3Schema: + description: CertificateManagerDNSAuthorization is the Schema for the CertificateManagerDNSAuthorization + API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: + description: CertificateManagerDNSAuthorizationSpec defines the desired + state of CertificateManagerDNSAuthorization properties: description: description: A human-readable description of the resource. type: string domain: - description: |- - Immutable. A domain which is being authorized. A DnsAuthorization resource covers a - single domain and its wildcard, e.g. authorization for "example.com" can - be used to issue certificates for "example.com" and "*.example.com". + description: Immutable. A domain which is being authorized. A DnsAuthorization + resource covers a single domain and its wildcard, e.g. authorization + for "example.com" can be used to issue certificates for "example.com" + and "*.example.com". type: string + x-kubernetes-validations: + - message: Domain field is immutable + rule: self == oldSelf projectRef: description: The project that this resource belongs to. oneOf: @@ -227,13 +251,18 @@ spec: - external properties: external: - description: 'Allowed value: The `name` field of a `Project` resource.' + description: The `projectID` field of a project, when not managed + by Config Connector. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `Project` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `Project` resource. type: string type: object resourceID: @@ -241,15 +270,20 @@ spec: creation and acquisition. When unset, the value of `metadata.name` is used as the default. type: string + x-kubernetes-validations: + - message: ResourceID field is immutable + rule: self == oldSelf required: - domain - projectRef type: object status: + description: CertificateManagerDNSAuthorizationStatus defines the config + connector machine state of CertificateManagerDNSAuthorization properties: conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the CertificateManagerDNSAuthorization's current state. items: properties: lastTransitionTime: @@ -274,18 +308,16 @@ spec: type: object type: array dnsResourceRecord: - description: |- - The structure describing the DNS Resource Record that needs to be added - to DNS configuration for the authorization to be usable by - certificate. + description: The structure describing the DNS Resource Record that + needs to be added to DNS configuration for the authorization to + be usable by certificate. items: properties: data: description: Data of the DNS Resource Record. type: string name: - description: |- - Fully qualified name of the DNS Resource Record. + description: Fully qualified name of the DNS Resource Record. E.g. '_acme-challenge.example.com'. type: string type: @@ -299,6 +331,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer type: object required: @@ -308,9 +341,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_cloudbuildworkerpools.cloudbuild.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_cloudbuildworkerpools.cloudbuild.cnrm.cloud.google.com.yaml index 3b08a7a622..1eed2492ae 100644 --- a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_cloudbuildworkerpools.cloudbuild.cnrm.cloud.google.com.yaml +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_cloudbuildworkerpools.cloudbuild.cnrm.cloud.google.com.yaml @@ -114,7 +114,7 @@ spec: properties: external: description: The `projectID` field of a project, when not managed - by KCC. + by Config Connector. type: string kind: description: The kind of the Project resource; optional but must @@ -331,7 +331,7 @@ spec: properties: external: description: The `projectID` field of a project, when not managed - by KCC. + by Config Connector. type: string kind: description: The kind of the Project resource; optional but must diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_computeforwardingrules.compute.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_computeforwardingrules.compute.cnrm.cloud.google.com.yaml index 40d12cc5c5..4ef87aba12 100644 --- a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_computeforwardingrules.compute.cnrm.cloud.google.com.yaml +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_computeforwardingrules.compute.cnrm.cloud.google.com.yaml @@ -16,6 +16,7 @@ spec: categories: - gcp kind: ComputeForwardingRule + listKind: ComputeForwardingRuleList plural: computeforwardingrules shortNames: - gcpcomputeforwardingrule @@ -43,16 +44,17 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: ComputeForwardingRule is the Schema for the compute API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object @@ -93,9 +95,8 @@ spec: whether the PSC endpoint can be accessed from another region. type: boolean backendServiceRef: - description: |- - A ComputeBackendService to receive the matched traffic. This is - used only for internal load balancing. + description: A ComputeBackendService to receive the matched traffic. + This is used only for internal load balancing. oneOf: - not: required: @@ -112,20 +113,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeBackendService` - resource.' + description: The ComputeBackendService selflink in the form "projects/{{project}}/global/backendServices/{{name}}" + or "projects/{{project}}/regions/{{region}}/backendServices/{{name}}" + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeBackendService` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeBackendService` + resource. type: string type: object description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. + description: Immutable. An optional description of this resource. + Provide this property when you create the resource. type: string ipAddress: description: |- @@ -148,11 +150,6 @@ spec: forwarding rule. By default, if this field is empty, an ephemeral internal IP address will be automatically allocated from the IP range of the subnet or network configured for this forwarding rule. - oneOf: - - required: - - addressRef - - required: - - ip properties: addressRef: oneOf: @@ -171,14 +168,14 @@ spec: - external properties: external: - description: 'Allowed value: The `address` field of a `ComputeAddress` - resource.' + description: The ComputeAddress selflink in the form "projects/{{project}}/regions/{{region}}/addresses/{{name}}" + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeAddress` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeAddress` resource. type: string type: object ip: @@ -260,14 +257,12 @@ spec: items: properties: name: - description: |- - Immutable. Name of the metadata label. The length must be between - 1 and 1024 characters, inclusive. + description: Immutable. Name of the metadata label. The + length must be between 1 and 1024 characters, inclusive. type: string value: - description: |- - Immutable. The value that the label must match. The value has a maximum - length of 1024 characters. + description: Immutable. The value that the label must + match. The value has a maximum length of 1024 characters. type: string required: - name @@ -290,11 +285,10 @@ spec: type: object type: array networkRef: - description: |- - This field is not used for external load balancing. For internal - load balancing, this field identifies the network that the load - balanced IP should belong to for this forwarding rule. If this - field is not specified, the default network will be used. + description: This field is not used for external load balancing. For + internal load balancing, this field identifies the network that + the load balanced IP should belong to for this forwarding rule. + If this field is not specified, the default network will be used. oneOf: - not: required: @@ -311,14 +305,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object networkTier: @@ -352,7 +346,6 @@ spec: [port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications) for details. - Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. @@ -374,7 +367,6 @@ spec: * By internal TCP/UDP load balancers, backend service-based network load balancers, internal protocol forwarding and when protocol is not L3_DEFAULT. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. Only packets addressed to these ports will be forwarded to the backends configured with this @@ -465,37 +457,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object target: - description: |- - The target resource to receive the matched traffic. The forwarded - traffic must be of a type appropriate to the target object. For - INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets + description: The target resource to receive the matched traffic. The + forwarded traffic must be of a type appropriate to the target object. + For INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets are valid. - oneOf: - - required: - - serviceAttachmentRef - - required: - - targetGRPCProxyRef - - required: - - targetHTTPProxyRef - - required: - - targetHTTPSProxyRef - - required: - - targetSSLProxyRef - - required: - - targetTCPProxyRef - - required: - - targetVPNGatewayRef properties: serviceAttachmentRef: oneOf: @@ -514,14 +490,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeServiceAttachment` - resource.' + description: The ComputeServiceAttachment selflink in the + form "projects/{{project}}/regions/{{region}}/serviceAttachments/{{name}}" + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeServiceAttachment` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeServiceAttachment` + resource. type: string type: object targetGRPCProxyRef: @@ -541,14 +520,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetGRPCProxy` - resource.' + description: The ComputeTargetGrpcProxy selflink in the form + "projects/{{project}}/global/targetGrpcProxies/{{name}}" + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetGrpcProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetGrpcProxy` + resource. type: string type: object targetHTTPProxyRef: @@ -568,14 +550,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPProxy` - resource.' + description: The ComputeTargetHTTPProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPProxy` + resource. type: string type: object targetHTTPSProxyRef: @@ -595,14 +581,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPSProxy` - resource.' + description: The ComputeTargetHTTPSProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPSProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPSProxy` + resource. type: string type: object targetSSLProxyRef: @@ -622,14 +612,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetSSLProxy` - resource.' + description: The ComputeTargetSSLProxy selflink in the form + "projects/{{project}}/global/targetSslProxies/{{name}}" + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetSSLProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetSSLProxy` + resource. type: string type: object targetTCPProxyRef: @@ -649,14 +642,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetTCPProxy` - resource.' + description: The ComputeTargetTCPProxy selflink in the form + "projects/{{project}}/global/targetTcpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetTcpProxies/{{name}}" + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetTCPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetTCPProxy` + resource. type: string type: object targetVPNGatewayRef: @@ -676,14 +673,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetVPNGateway` - resource.' + description: The ComputeTargetVPNGateway selflink in the form + "projects/{{project}}/regions/{{region}}/targetVpnGateways/{{name}}" + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetVPNGateway` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetVPNGateway` + resource. type: string type: object type: object @@ -700,8 +700,8 @@ spec: if the current Forwarding Rule does not have sourceIPRanges specified.' type: string conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -728,9 +728,12 @@ spec: creationTimestamp: description: Creation timestamp in RFC3339 text format. type: string + externalRef: + description: A unique Config Connector specifier for the resource + in GCP. + type: string labelFingerprint: - description: |- - The fingerprint used for optimistic locking of this resource. Used + description: The fingerprint used for optimistic locking of this resource. Used internally during updates. type: string observedGeneration: @@ -739,6 +742,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer pscConnectionId: description: The PSC connection id of the PSC Forwarding Rule. @@ -757,16 +761,8 @@ spec: This field is only used for INTERNAL load balancing. type: string type: object - required: - - spec type: object served: true storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_dataflowflextemplatejobs.dataflow.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_dataflowflextemplatejobs.dataflow.cnrm.cloud.google.com.yaml index 4a7aa0982b..cd6a5638f4 100644 --- a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_dataflowflextemplatejobs.dataflow.cnrm.cloud.google.com.yaml +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_dataflowflextemplatejobs.dataflow.cnrm.cloud.google.com.yaml @@ -225,7 +225,7 @@ spec: properties: external: description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeSubnetwork` resource. diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_dataformrepositories.dataform.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_dataformrepositories.dataform.cnrm.cloud.google.com.yaml index 9f0ebfab28..bf0660b166 100644 --- a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_dataformrepositories.dataform.cnrm.cloud.google.com.yaml +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_dataformrepositories.dataform.cnrm.cloud.google.com.yaml @@ -199,7 +199,7 @@ spec: properties: external: description: The `projectID` field of a project, when not managed - by KCC. + by Config Connector. type: string kind: description: The kind of the Project resource; optional but must diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_securesourcemanagerinstances.securesourcemanager.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_firestoredatabases.firestore.cnrm.cloud.google.com.yaml similarity index 53% rename from config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_securesourcemanagerinstances.securesourcemanager.cnrm.cloud.google.com.yaml rename to config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_firestoredatabases.firestore.cnrm.cloud.google.com.yaml index 95fc86a81b..dd602970ff 100644 --- a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_securesourcemanagerinstances.securesourcemanager.cnrm.cloud.google.com.yaml +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_firestoredatabases.firestore.cnrm.cloud.google.com.yaml @@ -6,21 +6,17 @@ metadata: creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha cnrm.cloud.google.com/system: "true" - name: securesourcemanagerinstances.securesourcemanager.cnrm.cloud.google.com + name: firestoredatabases.firestore.cnrm.cloud.google.com spec: - group: securesourcemanager.cnrm.cloud.google.com + group: firestore.cnrm.cloud.google.com names: categories: - gcp - kind: SecureSourceManagerInstance - listKind: SecureSourceManagerInstanceList - plural: securesourcemanagerinstances - shortNames: - - gcpsecuresourcemanagerinstance - - gcpsecuresourcemanagerinstances - singular: securesourcemanagerinstance + kind: FirestoreDatabase + listKind: FirestoreDatabaseList + plural: firestoredatabases + singular: firestoredatabase preserveUnknownFields: false scope: Namespaced versions: @@ -43,8 +39,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: SecureSourceManagerInstance is the Schema for the SecureSourceManagerInstance - API + description: FirestoreDatabase is the Schema for the FirestoreDatabase API properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -59,15 +54,21 @@ spec: metadata: type: object spec: - description: SecureSourceManagerInstanceSpec defines the desired state - of SecureSourceManagerInstance + description: FirestoreDatabaseSpec defines the desired state of FirestoreDatabase properties: - kmsKey: - description: Optional. Immutable. Customer-managed encryption key - name, in the format projects/*/locations/*/keyRings/*/cryptoKeys/*. + concurrencyMode: + description: The concurrency control mode to use for this database. + See https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases#concurrencymode + for more info. type: string - location: - description: Immutable. Location of the instance. + locationID: + description: The location of the database. Available locations are + listed at https://cloud.google.com/firestore/docs/locations. + type: string + pointInTimeRecoveryEnablement: + description: Whether to enable the PITR feature on this database. + See https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases#pointintimerecoveryenablement + for more info. type: string projectRef: description: Immutable. The Project that this resource belongs to. @@ -88,7 +89,7 @@ spec: properties: external: description: The `projectID` field of a project, when not managed - by KCC. + by Config Connector. type: string kind: description: The kind of the Project resource; optional but must @@ -102,17 +103,15 @@ spec: type: string type: object resourceID: - description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. + description: The FirestoreDatabase name. If not given, the metadata.name + will be used. type: string required: - - location - projectRef type: object status: - description: SecureSourceManagerInstanceStatus defines the config connector - machine state of SecureSourceManagerInstance + description: FirestoreDatabaseStatus defines the config connector machine + state of FirestoreDatabase properties: conditions: description: Conditions represent the latest available observations @@ -141,8 +140,8 @@ spec: type: object type: array externalRef: - description: A unique specifier for the SecureSourceManagerInstance - resource in GCP. + description: A unique specifier for the FirestoreDatabase resource + in GCP. type: string observedGeneration: description: ObservedGeneration is the generation of the resource @@ -156,29 +155,58 @@ spec: description: ObservedState is the state of the resource as most recently observed in GCP. properties: - hostConfig: - description: Output only. A list of hostnames for this instance. - properties: - api: - description: 'Output only. API hostname. This is the hostname - to use for **Host: Data Plane** endpoints.' - type: string - gitHTTP: - description: Output only. Git HTTP hostname. - type: string - gitSSH: - description: Output only. Git SSH hostname. - type: string - html: - description: Output only. HTML hostname. - type: string - type: object - state: - description: Output only. Current state of the instance. + createTime: + description: Output only. The timestamp at which this database + was created. Databases created before 2016 do not populate create_time. + type: string + earliestVersionTime: + description: |- + Output only. The earliest timestamp at which older versions of the data can + be read from the database. See [version_retention_period] above; this field + is populated with `now - version_retention_period`. + + This value is continuously updated, and becomes stale the moment it is + queried. If you are using this value to recover data, make sure to account + for the time from the moment when the value is queried to the moment when + you initiate the recovery. + type: string + etag: + description: This checksum is computed by the server based on + the value of other fields, and may be sent on update and delete + requests to ensure the client has an up-to-date value before + proceeding. + type: string + keyPrefix: + description: |- + Output only. The key_prefix for this database. This key_prefix is used, in + combination with the project id ("~") to construct + the application id that is returned from the Cloud Datastore APIs in Google + App Engine first generation runtimes. + + This value may be empty in which case the appid to use for URL-encoded keys + is the project_id (eg: foo instead of v~foo). + type: string + uid: + description: Output only. The system-generated UUID4 for this + Database. + type: string + updateTime: + description: Output only. The timestamp at which this database + was most recently updated. Note this only includes updates to + the database resource and not data contained by the database. type: string - stateNote: - description: Output only. An optional field providing information - about the current instance state. + versionRetentionPeriod: + description: |- + Output only. The period during which past versions of data are retained in + the database. + + Any [read][google.firestore.v1.GetDocumentRequest.read_time] + or [query][google.firestore.v1.ListDocumentsRequest.read_time] can specify + a `read_time` within this window, and will read the state of the database + at that time. + + If the PITR feature is enabled, the retention period is 7 days. Otherwise, + the retention period is 1 hour. type: string type: object type: object diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_gkehubfeaturememberships.gkehub.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_gkehubfeaturememberships.gkehub.cnrm.cloud.google.com.yaml index 1d2842c8cb..66a9bf1b64 100644 --- a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_gkehubfeaturememberships.gkehub.cnrm.cloud.google.com.yaml +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_gkehubfeaturememberships.gkehub.cnrm.cloud.google.com.yaml @@ -229,10 +229,8 @@ spec: type: string type: object hierarchyController: - description: '**DEPRECATED** Configuring Hierarchy Controller - through the configmanagement feature is no longer recommended. - Use https://github.com/kubernetes-sigs/hierarchical-namespaces - instead.' + description: Hierarchy Controller is no longer available. Use + https://github.com/kubernetes-sigs/hierarchical-namespaces instead. properties: enableHierarchicalResourceQuota: description: Whether hierarchical resource quota is enabled diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_logginglogmetrics.logging.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_logginglogmetrics.logging.cnrm.cloud.google.com.yaml index 383c0232a5..d6f395e550 100644 --- a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_logginglogmetrics.logging.cnrm.cloud.google.com.yaml +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_logginglogmetrics.logging.cnrm.cloud.google.com.yaml @@ -335,7 +335,7 @@ spec: properties: external: description: The `projectID` field of a project, when not managed - by KCC. + by Config Connector. type: string kind: description: The kind of the Project resource; optional but must diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_monitoringdashboards.monitoring.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_monitoringdashboards.monitoring.cnrm.cloud.google.com.yaml index be3509a9e6..f29d80d71e 100644 --- a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_monitoringdashboards.monitoring.cnrm.cloud.google.com.yaml +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_monitoringdashboards.monitoring.cnrm.cloud.google.com.yaml @@ -101,7 +101,7 @@ spec: external: description: The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `MonitoringAlertPolicy` @@ -158,7 +158,7 @@ spec: properties: external: description: The `projectID` field of a - project, when not managed by KCC. + project, when not managed by Config Connector. type: string kind: description: The kind of the Project resource; @@ -244,7 +244,7 @@ spec: external: description: The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `MonitoringAlertPolicy` @@ -2152,7 +2152,7 @@ spec: external: description: The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `MonitoringAlertPolicy` @@ -2207,7 +2207,7 @@ spec: properties: external: description: The `projectID` field of a project, - when not managed by KCC. + when not managed by Config Connector. type: string kind: description: The kind of the Project resource; @@ -2292,7 +2292,7 @@ spec: external: description: The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `MonitoringAlertPolicy` @@ -4019,7 +4019,7 @@ spec: external: description: The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `MonitoringAlertPolicy` @@ -4075,7 +4075,7 @@ spec: properties: external: description: The `projectID` field of a project, - when not managed by KCC. + when not managed by Config Connector. type: string kind: description: The kind of the Project resource; @@ -4161,7 +4161,7 @@ spec: external: description: The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `MonitoringAlertPolicy` @@ -5973,7 +5973,7 @@ spec: properties: external: description: The `projectID` field of a project, when not managed - by KCC. + by Config Connector. type: string kind: description: The kind of the Project resource; optional but must @@ -6032,7 +6032,7 @@ spec: external: description: The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `MonitoringAlertPolicy` @@ -6089,7 +6089,7 @@ spec: properties: external: description: The `projectID` field of a - project, when not managed by KCC. + project, when not managed by Config Connector. type: string kind: description: The kind of the Project resource; @@ -6175,7 +6175,7 @@ spec: external: description: The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `MonitoringAlertPolicy` diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_networkconnectivityserviceconnectionpolicies.networkconnectivity.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_networkconnectivityserviceconnectionpolicies.networkconnectivity.cnrm.cloud.google.com.yaml index d5ea58db53..b166f3a4c6 100644 --- a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_networkconnectivityserviceconnectionpolicies.networkconnectivity.cnrm.cloud.google.com.yaml +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_networkconnectivityserviceconnectionpolicies.networkconnectivity.cnrm.cloud.google.com.yaml @@ -107,7 +107,7 @@ spec: properties: external: description: The `projectID` field of a project, when not managed - by KCC. + by Config Connector. type: string kind: description: The kind of the Project resource; optional but must @@ -155,7 +155,7 @@ spec: properties: external: description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeSubnetwork` resource. diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_redisclusters.redis.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_redisclusters.redis.cnrm.cloud.google.com.yaml index acdf42fd5a..952f4ddf1f 100644 --- a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_redisclusters.redis.cnrm.cloud.google.com.yaml +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_redisclusters.redis.cnrm.cloud.google.com.yaml @@ -118,7 +118,7 @@ spec: properties: external: description: The `projectID` field of a project, when not managed - by KCC. + by Config Connector. type: string kind: description: The kind of the Project resource; optional but must diff --git a/config/samples/resources/gkehubfeaturemembership/config-management-feature-membership/gkehub_v1beta1_gkehubfeature.yaml b/config/samples/resources/gkehubfeaturemembership/config-management-feature-membership/gkehub_v1beta1_gkehubfeature.yaml index 762e2ff67d..5cb73ea9be 100644 --- a/config/samples/resources/gkehubfeaturemembership/config-management-feature-membership/gkehub_v1beta1_gkehubfeature.yaml +++ b/config/samples/resources/gkehubfeaturemembership/config-management-feature-membership/gkehub_v1beta1_gkehubfeature.yaml @@ -16,8 +16,6 @@ apiVersion: gkehub.cnrm.cloud.google.com/v1beta1 kind: GKEHubFeature metadata: name: gkehubfeaturemembership-dep-acm - # The GKEHubFeature is a global resource in your project. - # In case you might have configured the resource using other clients like gcloud, abandon the resource when deleted. annotations: cnrm.cloud.google.com/deletion-policy: abandon spec: diff --git a/config/tests/samples/create/harness.go b/config/tests/samples/create/harness.go index 87918b1d3f..a26f699584 100644 --- a/config/tests/samples/create/harness.go +++ b/config/tests/samples/create/harness.go @@ -76,7 +76,7 @@ type Harness struct { Project testgcp.GCPProject - VCRRecorderDCL *recorder.Recorder + VCRRecorderNonTF *recorder.Recorder VCRRecorderTF *recorder.Recorder VCRRecorderOauth *recorder.Recorder @@ -401,16 +401,17 @@ func NewHarnessWithOptions(ctx context.Context, t *testing.T, opts *HarnessOptio path := filepath.Join(h.options.VCRPath, "_vcr_cassettes") // In replay mode, RealTransport is unnecessary because we simply replay existing cassettes. opts := &recorder.Options{ - CassetteName: filepath.Join(path, "dcl"), + CassetteName: filepath.Join(path, "nontf"), Mode: vcrMode, } // In record mode, use the real GCP HTTP client's transport as the recorder's transport. // This way, the recorder is able to capture the real request/response pairs. if inputMode == "record" { + // Intercept (and log) DCL and direct(non TF) requests if kccConfig.HTTPClient == nil { httpClient, err := google.DefaultClient(ctx, gcp.ClientScopes...) if err != nil { - t.Fatalf("error creating the http client to be used by DCL: %v", err) + t.Fatalf("error creating the http client to be not used by TF: %v", err) } kccConfig.HTTPClient = httpClient } @@ -418,11 +419,12 @@ func NewHarnessWithOptions(ctx context.Context, t *testing.T, opts *HarnessOptio } r, err := recorder.NewWithOptions(opts) if err != nil { - t.Fatalf("[VCR] Failed create DCL vcr recorder: %v", err) + t.Fatalf("[VCR] Failed create non TF vcr recorder: %v", err) } - h.VCRRecorderDCL = r - kccConfig.HTTPClient = &http.Client{Transport: h.VCRRecorderDCL} + h.VCRRecorderNonTF = r + kccConfig.HTTPClient = &http.Client{Transport: h.VCRRecorderNonTF} + // Intercept (and log) TF requests transport_tpg.DefaultHTTPClientTransformer = func(ctx context.Context, inner *http.Client) *http.Client { ret := inner if t := ctx.Value(httpRoundTripperKey); t != nil { @@ -441,6 +443,7 @@ func NewHarnessWithOptions(ctx context.Context, t *testing.T, opts *HarnessOptio ret = &http.Client{Transport: h.VCRRecorderTF} return ret } + // Intercept (and log) OAuth requests transport_tpg.OAuth2HTTPClientTransformer = func(ctx context.Context, inner *http.Client) *http.Client { ret := inner if t := ctx.Value(httpRoundTripperKey); t != nil { @@ -496,7 +499,7 @@ func NewHarnessWithOptions(ctx context.Context, t *testing.T, opts *HarnessOptio transport_tpg.GRPCUnaryClientInterceptor = grpcUnaryInterceptor - // Intercept (and log) DCL requests + // Intercept (and log) DCL and direct(non TF) requests if len(eventSinks) != 0 { if kccConfig.HTTPClient == nil { httpClient, err := google.DefaultClient(ctx, gcp.ClientScopes...) @@ -671,10 +674,15 @@ func MaybeSkip(t *testing.T, name string, resources []*unstructured.Unstructured case schema.GroupKind{Group: "compute.cnrm.cloud.google.com", Kind: "ComputeNodeTemplate"}: case schema.GroupKind{Group: "compute.cnrm.cloud.google.com", Kind: "ComputeManagedSSLCertificate"}: //case schema.GroupKind{Group: "compute.cnrm.cloud.google.com", Kind: "ComputeServiceAttachment"}: + case schema.GroupKind{Group: "compute.cnrm.cloud.google.com", Kind: "ComputeSSLCertificate"}: case schema.GroupKind{Group: "compute.cnrm.cloud.google.com", Kind: "ComputeSubnetwork"}: + case schema.GroupKind{Group: "compute.cnrm.cloud.google.com", Kind: "ComputeTargetHTTPProxy"}: + case schema.GroupKind{Group: "compute.cnrm.cloud.google.com", Kind: "ComputeTargetHTTPSProxy"}: case schema.GroupKind{Group: "compute.cnrm.cloud.google.com", Kind: "ComputeTargetVPNGateway"}: case schema.GroupKind{Group: "compute.cnrm.cloud.google.com", Kind: "ComputeVPNGateway"}: case schema.GroupKind{Group: "compute.cnrm.cloud.google.com", Kind: "ComputeTargetHTTPProxy"}: + case schema.GroupKind{Group: "compute.cnrm.cloud.google.com", Kind: "ComputeTargetSSLProxy"}: + case schema.GroupKind{Group: "compute.cnrm.cloud.google.com", Kind: "ComputeTargetTCPProxy"}: case schema.GroupKind{Group: "compute.cnrm.cloud.google.com", Kind: "ComputeURLMap"}: // ok @@ -698,6 +706,8 @@ func MaybeSkip(t *testing.T, name string, resources []*unstructured.Unstructured case schema.GroupKind{Group: "edgenetwork.cnrm.cloud.google.com", Kind: "EdgeNetworkNetwork"}: case schema.GroupKind{Group: "edgenetwork.cnrm.cloud.google.com", Kind: "EdgeNetworkSubnet"}: + case schema.GroupKind{Group: "firestore.cnrm.cloud.google.com", Kind: "FirestoreDatabase"}: + case schema.GroupKind{Group: "kms.cnrm.cloud.google.com", Kind: "KMSKeyRing"}: case schema.GroupKind{Group: "kms.cnrm.cloud.google.com", Kind: "KMSCryptoKey"}: @@ -793,7 +803,7 @@ func MaybeSkip(t *testing.T, name string, resources []*unstructured.Unstructured case "networkconnectivityhub": case "networkservicesgrpcroute": case "osconfigguestpolicy": - case "pubsubsubscription": + case "basicpubsubsubscription": case "pubsublitereservation": case "androidrecaptchaenterprisekey": case "redisinstance": @@ -805,7 +815,6 @@ func MaybeSkip(t *testing.T, name string, resources []*unstructured.Unstructured case "sourcereporepository": case "spannerdatabase": case "sqluser": - case "computenodegroup": case "computenodetemplate": case "privatecacapool": diff --git a/config/tests/servicemapping/servicemapping_test.go b/config/tests/servicemapping/servicemapping_test.go index 8afb1c10fe..729fe9d810 100644 --- a/config/tests/servicemapping/servicemapping_test.go +++ b/config/tests/servicemapping/servicemapping_test.go @@ -1267,6 +1267,11 @@ func TestStorageVersionIsSetAndValidIFFV1alpha1ToV1beta1IsSet(t *testing.T) { continue } if isV1alpha1ToV1beta1 { + // if this is a direct resource, the storage version is defiend + // in the kubebuilder tooling + if r.Direct { + continue + } if hasStorageVersion { t.Errorf("Resource config %v has `v1alpha1ToV1beta1: "+ "true` but doesn't have a valid `storageVersion`: "+ diff --git a/crds/accesscontextmanager_v1alpha1_accesscontextmanageraccesslevelcondition.yaml b/crds/accesscontextmanager_v1alpha1_accesscontextmanageraccesslevelcondition.yaml index 3bc0637d2b..8d62a71a1d 100644 --- a/crds/accesscontextmanager_v1alpha1_accesscontextmanageraccesslevelcondition.yaml +++ b/crds/accesscontextmanager_v1alpha1_accesscontextmanageraccesslevelcondition.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/accesscontextmanager_v1alpha1_accesscontextmanagergcpuseraccessbinding.yaml b/crds/accesscontextmanager_v1alpha1_accesscontextmanagergcpuseraccessbinding.yaml index 68d4cc1ac8..9b7f6bf406 100644 --- a/crds/accesscontextmanager_v1alpha1_accesscontextmanagergcpuseraccessbinding.yaml +++ b/crds/accesscontextmanager_v1alpha1_accesscontextmanagergcpuseraccessbinding.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/accesscontextmanager_v1beta1_accesscontextmanageraccesslevel.yaml b/crds/accesscontextmanager_v1beta1_accesscontextmanageraccesslevel.yaml index ad0bb31a7d..9314b63d03 100644 --- a/crds/accesscontextmanager_v1beta1_accesscontextmanageraccesslevel.yaml +++ b/crds/accesscontextmanager_v1beta1_accesscontextmanageraccesslevel.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/accesscontextmanager_v1beta1_accesscontextmanageraccesspolicy.yaml b/crds/accesscontextmanager_v1beta1_accesscontextmanageraccesspolicy.yaml index 79cba4ecaa..a803532bef 100644 --- a/crds/accesscontextmanager_v1beta1_accesscontextmanageraccesspolicy.yaml +++ b/crds/accesscontextmanager_v1beta1_accesscontextmanageraccesspolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/accesscontextmanager_v1beta1_accesscontextmanagerserviceperimeter.yaml b/crds/accesscontextmanager_v1beta1_accesscontextmanagerserviceperimeter.yaml index 19c1e8a8c5..c085e64bca 100644 --- a/crds/accesscontextmanager_v1beta1_accesscontextmanagerserviceperimeter.yaml +++ b/crds/accesscontextmanager_v1beta1_accesscontextmanagerserviceperimeter.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/accesscontextmanager_v1beta1_accesscontextmanagerserviceperimeterresource.yaml b/crds/accesscontextmanager_v1beta1_accesscontextmanagerserviceperimeterresource.yaml index 57867c39de..f167c8cf44 100644 --- a/crds/accesscontextmanager_v1beta1_accesscontextmanagerserviceperimeterresource.yaml +++ b/crds/accesscontextmanager_v1beta1_accesscontextmanagerserviceperimeterresource.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/alloydb_v1beta1_alloydbbackup.yaml b/crds/alloydb_v1beta1_alloydbbackup.yaml index 77484e54d2..89ee5b4ea8 100644 --- a/crds/alloydb_v1beta1_alloydbbackup.yaml +++ b/crds/alloydb_v1beta1_alloydbbackup.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/alloydb_v1beta1_alloydbcluster.yaml b/crds/alloydb_v1beta1_alloydbcluster.yaml index 8592ce18a6..d642bf38ce 100644 --- a/crds/alloydb_v1beta1_alloydbcluster.yaml +++ b/crds/alloydb_v1beta1_alloydbcluster.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -737,6 +737,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -1448,6 +1456,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string diff --git a/crds/alloydb_v1beta1_alloydbinstance.yaml b/crds/alloydb_v1beta1_alloydbinstance.yaml index 72ec143242..7a4118d004 100644 --- a/crds/alloydb_v1beta1_alloydbinstance.yaml +++ b/crds/alloydb_v1beta1_alloydbinstance.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/alloydb_v1beta1_alloydbuser.yaml b/crds/alloydb_v1beta1_alloydbuser.yaml index 307581580c..b5c919e674 100644 --- a/crds/alloydb_v1beta1_alloydbuser.yaml +++ b/crds/alloydb_v1beta1_alloydbuser.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/apigateway_v1alpha1_apigatewayapi.yaml b/crds/apigateway_v1alpha1_apigatewayapi.yaml index ef224e6902..e1bf77aba9 100644 --- a/crds/apigateway_v1alpha1_apigatewayapi.yaml +++ b/crds/apigateway_v1alpha1_apigatewayapi.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/apigateway_v1alpha1_apigatewayapiconfig.yaml b/crds/apigateway_v1alpha1_apigatewayapiconfig.yaml index d28fd781a5..2eaa31b275 100644 --- a/crds/apigateway_v1alpha1_apigatewayapiconfig.yaml +++ b/crds/apigateway_v1alpha1_apigatewayapiconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/apigateway_v1alpha1_apigatewaygateway.yaml b/crds/apigateway_v1alpha1_apigatewaygateway.yaml index 7b92f319ab..d67e689826 100644 --- a/crds/apigateway_v1alpha1_apigatewaygateway.yaml +++ b/crds/apigateway_v1alpha1_apigatewaygateway.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/apigee_v1alpha1_apigeeaddonsconfig.yaml b/crds/apigee_v1alpha1_apigeeaddonsconfig.yaml index 85de1b2386..335ae082a8 100644 --- a/crds/apigee_v1alpha1_apigeeaddonsconfig.yaml +++ b/crds/apigee_v1alpha1_apigeeaddonsconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/apigee_v1alpha1_apigeeendpointattachment.yaml b/crds/apigee_v1alpha1_apigeeendpointattachment.yaml index 36e0357028..8c5d88d294 100644 --- a/crds/apigee_v1alpha1_apigeeendpointattachment.yaml +++ b/crds/apigee_v1alpha1_apigeeendpointattachment.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/apigee_v1alpha1_apigeeenvgroup.yaml b/crds/apigee_v1alpha1_apigeeenvgroup.yaml index 6e76b0742d..6fe8d1a0e8 100644 --- a/crds/apigee_v1alpha1_apigeeenvgroup.yaml +++ b/crds/apigee_v1alpha1_apigeeenvgroup.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/apigee_v1alpha1_apigeeenvgroupattachment.yaml b/crds/apigee_v1alpha1_apigeeenvgroupattachment.yaml index 0333f93d5c..f48ff45d78 100644 --- a/crds/apigee_v1alpha1_apigeeenvgroupattachment.yaml +++ b/crds/apigee_v1alpha1_apigeeenvgroupattachment.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/apigee_v1alpha1_apigeeinstance.yaml b/crds/apigee_v1alpha1_apigeeinstance.yaml index 7fc22c0071..6f966aef09 100644 --- a/crds/apigee_v1alpha1_apigeeinstance.yaml +++ b/crds/apigee_v1alpha1_apigeeinstance.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/apigee_v1alpha1_apigeeinstanceattachment.yaml b/crds/apigee_v1alpha1_apigeeinstanceattachment.yaml index c33fde80a3..4142ba788a 100644 --- a/crds/apigee_v1alpha1_apigeeinstanceattachment.yaml +++ b/crds/apigee_v1alpha1_apigeeinstanceattachment.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/apigee_v1alpha1_apigeenataddress.yaml b/crds/apigee_v1alpha1_apigeenataddress.yaml index 7c26e524e2..c11e640f16 100644 --- a/crds/apigee_v1alpha1_apigeenataddress.yaml +++ b/crds/apigee_v1alpha1_apigeenataddress.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/apigee_v1alpha1_apigeesyncauthorization.yaml b/crds/apigee_v1alpha1_apigeesyncauthorization.yaml index e861a2992b..ffbe5e6ddf 100644 --- a/crds/apigee_v1alpha1_apigeesyncauthorization.yaml +++ b/crds/apigee_v1alpha1_apigeesyncauthorization.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/apigee_v1beta1_apigeeenvironment.yaml b/crds/apigee_v1beta1_apigeeenvironment.yaml index dd982b4459..55262002dc 100644 --- a/crds/apigee_v1beta1_apigeeenvironment.yaml +++ b/crds/apigee_v1beta1_apigeeenvironment.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/apigee_v1beta1_apigeeorganization.yaml b/crds/apigee_v1beta1_apigeeorganization.yaml index bb77925702..ec95b59ae1 100644 --- a/crds/apigee_v1beta1_apigeeorganization.yaml +++ b/crds/apigee_v1beta1_apigeeorganization.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/apikeys_v1alpha1_apikeyskey.yaml b/crds/apikeys_v1alpha1_apikeyskey.yaml index d84491e1e8..aace12fd14 100644 --- a/crds/apikeys_v1alpha1_apikeyskey.yaml +++ b/crds/apikeys_v1alpha1_apikeyskey.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/appengine_v1alpha1_appenginedomainmapping.yaml b/crds/appengine_v1alpha1_appenginedomainmapping.yaml index 842e4135e1..50249b63c9 100644 --- a/crds/appengine_v1alpha1_appenginedomainmapping.yaml +++ b/crds/appengine_v1alpha1_appenginedomainmapping.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/appengine_v1alpha1_appenginefirewallrule.yaml b/crds/appengine_v1alpha1_appenginefirewallrule.yaml index c32fe7f166..97c5fea0d2 100644 --- a/crds/appengine_v1alpha1_appenginefirewallrule.yaml +++ b/crds/appengine_v1alpha1_appenginefirewallrule.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/appengine_v1alpha1_appengineflexibleappversion.yaml b/crds/appengine_v1alpha1_appengineflexibleappversion.yaml index 95774a1409..3964ee847c 100644 --- a/crds/appengine_v1alpha1_appengineflexibleappversion.yaml +++ b/crds/appengine_v1alpha1_appengineflexibleappversion.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/appengine_v1alpha1_appengineservicesplittraffic.yaml b/crds/appengine_v1alpha1_appengineservicesplittraffic.yaml index 9aa1151192..f8f089c21f 100644 --- a/crds/appengine_v1alpha1_appengineservicesplittraffic.yaml +++ b/crds/appengine_v1alpha1_appengineservicesplittraffic.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/appengine_v1alpha1_appenginestandardappversion.yaml b/crds/appengine_v1alpha1_appenginestandardappversion.yaml index ceb39bd09c..bb514a2861 100644 --- a/crds/appengine_v1alpha1_appenginestandardappversion.yaml +++ b/crds/appengine_v1alpha1_appenginestandardappversion.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/artifactregistry_v1beta1_artifactregistryrepository.yaml b/crds/artifactregistry_v1beta1_artifactregistryrepository.yaml index efbaa61d70..9d7045b75e 100644 --- a/crds/artifactregistry_v1beta1_artifactregistryrepository.yaml +++ b/crds/artifactregistry_v1beta1_artifactregistryrepository.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/beyondcorp_v1alpha1_beyondcorpappconnection.yaml b/crds/beyondcorp_v1alpha1_beyondcorpappconnection.yaml index beae60dced..45f0d69aa3 100644 --- a/crds/beyondcorp_v1alpha1_beyondcorpappconnection.yaml +++ b/crds/beyondcorp_v1alpha1_beyondcorpappconnection.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/beyondcorp_v1alpha1_beyondcorpappconnector.yaml b/crds/beyondcorp_v1alpha1_beyondcorpappconnector.yaml index a446d50d0b..7ce3b97de5 100644 --- a/crds/beyondcorp_v1alpha1_beyondcorpappconnector.yaml +++ b/crds/beyondcorp_v1alpha1_beyondcorpappconnector.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/beyondcorp_v1alpha1_beyondcorpappgateway.yaml b/crds/beyondcorp_v1alpha1_beyondcorpappgateway.yaml index 1676c2724c..1161e01800 100644 --- a/crds/beyondcorp_v1alpha1_beyondcorpappgateway.yaml +++ b/crds/beyondcorp_v1alpha1_beyondcorpappgateway.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/bigquery_v1alpha1_bigquerydatasetaccess.yaml b/crds/bigquery_v1alpha1_bigquerydatasetaccess.yaml index 7ec3bef915..88de1f47d6 100644 --- a/crds/bigquery_v1alpha1_bigquerydatasetaccess.yaml +++ b/crds/bigquery_v1alpha1_bigquerydatasetaccess.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/bigquery_v1beta1_bigquerydataset.yaml b/crds/bigquery_v1beta1_bigquerydataset.yaml index 7ed76fa0fd..407f8ccaf1 100644 --- a/crds/bigquery_v1beta1_bigquerydataset.yaml +++ b/crds/bigquery_v1beta1_bigquerydataset.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/bigquery_v1beta1_bigqueryjob.yaml b/crds/bigquery_v1beta1_bigqueryjob.yaml index 6a01b938ce..850451b3b6 100644 --- a/crds/bigquery_v1beta1_bigqueryjob.yaml +++ b/crds/bigquery_v1beta1_bigqueryjob.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/bigquery_v1beta1_bigqueryroutine.yaml b/crds/bigquery_v1beta1_bigqueryroutine.yaml index 8091e46ad2..9764fd5b14 100644 --- a/crds/bigquery_v1beta1_bigqueryroutine.yaml +++ b/crds/bigquery_v1beta1_bigqueryroutine.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/bigquery_v1beta1_bigquerytable.yaml b/crds/bigquery_v1beta1_bigquerytable.yaml index 2af4bb3b92..71632f6a13 100644 --- a/crds/bigquery_v1beta1_bigquerytable.yaml +++ b/crds/bigquery_v1beta1_bigquerytable.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/bigqueryanalyticshub_v1alpha1_bigqueryanalyticshubdataexchange.yaml b/crds/bigqueryanalyticshub_v1alpha1_bigqueryanalyticshubdataexchange.yaml index d117d57e70..4810f4af76 100644 --- a/crds/bigqueryanalyticshub_v1alpha1_bigqueryanalyticshubdataexchange.yaml +++ b/crds/bigqueryanalyticshub_v1alpha1_bigqueryanalyticshubdataexchange.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/bigqueryanalyticshub_v1alpha1_bigqueryanalyticshublisting.yaml b/crds/bigqueryanalyticshub_v1alpha1_bigqueryanalyticshublisting.yaml index e7695c1f5d..1f374401e2 100644 --- a/crds/bigqueryanalyticshub_v1alpha1_bigqueryanalyticshublisting.yaml +++ b/crds/bigqueryanalyticshub_v1alpha1_bigqueryanalyticshublisting.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/bigqueryconnection_v1alpha1_bigqueryconnectionconnection.yaml b/crds/bigqueryconnection_v1alpha1_bigqueryconnectionconnection.yaml index c940fb45de..4cd446e7b5 100644 --- a/crds/bigqueryconnection_v1alpha1_bigqueryconnectionconnection.yaml +++ b/crds/bigqueryconnection_v1alpha1_bigqueryconnectionconnection.yaml @@ -1,10 +1,10 @@ -# Copyright 2020 Google LLC +# Copyright 2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -16,13 +16,11 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 0.0.0-dev creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" name: bigqueryconnectionconnections.bigqueryconnection.cnrm.cloud.google.com spec: group: bigqueryconnection.cnrm.cloud.google.com @@ -30,11 +28,13 @@ spec: categories: - gcp kind: BigQueryConnectionConnection + listKind: BigQueryConnectionConnectionList plural: bigqueryconnectionconnections shortNames: - gcpbigqueryconnectionconnection - gcpbigqueryconnectionconnections singular: bigqueryconnectionconnection + preserveUnknownFields: false scope: Namespaced versions: - additionalPrinterColumns: @@ -56,48 +56,42 @@ spec: name: v1alpha1 schema: openAPIV3Schema: + description: BigQueryConnectionConnection is the Schema for the BigQueryConnectionConnection + API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: + description: BigQueryConnectionConnectionSpec defines the desired state + to connect BigQuery to external resources properties: cloudResource: - description: Container for connection properties for delegation of - access to GCP resources. - properties: - serviceAccountId: - description: The account ID of the service created for the purpose - of this connection. - type: string + description: Use Cloud Resource properties. type: object description: - description: A descriptive description for the connection. + description: User provided description. type: string friendlyName: - description: A descriptive name for the connection. + description: User provided display name for the connection. type: string location: - description: |- - Immutable. The geographic location where the connection should reside. - Cloud SQL instance must be in the same location as the connection - with following exceptions: Cloud SQL us-central1 maps to BigQuery US, Cloud SQL europe-west1 maps to BigQuery EU. - Examples: US, EU, asia-northeast1, us-central1, europe-west1. - Spanner Connections same as spanner region - AWS allowed regions are aws-us-east-1 - Azure allowed regions are azure-eastus2. + description: Immutable. type: string + x-kubernetes-validations: + - message: Location field is immutable + rule: self == oldSelf projectRef: - description: The project that this resource belongs to. + description: The Project that this resource belongs to. oneOf: - not: required: @@ -114,29 +108,38 @@ spec: - external properties: external: - description: 'Allowed value: The `name` field of a `Project` resource.' + description: The `projectID` field of a project, when not managed + by Config Connector. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `Project` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `Project` resource. type: string type: object resourceID: - description: Immutable. Optional. The connectionId of the resource. - Used for creation and acquisition. When unset, the value of `metadata.name` - is used as the default. + description: Immutable. The BigQueryConnectionConnection name. If + not given, the metadata.name will be used. type: string + x-kubernetes-validations: + - message: ResourceID field is immutable + rule: self == oldSelf required: - location - projectRef type: object status: + description: BigQueryConnectionConnectionStatus defines the config connector + machine state of BigQueryConnectionConnection properties: conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -160,13 +163,9 @@ spec: type: string type: object type: array - hasCredential: - description: True if the connection has credential assigned. - type: boolean - name: - description: |- - The resource name of the connection in the form of: - "projects/{project_id}/locations/{location_id}/connections/{connectionId}". + externalRef: + description: A unique specifier for the BigQueryConnectionConnection + resource in GCP. type: string observedGeneration: description: ObservedGeneration is the generation of the resource @@ -174,31 +173,33 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer observedState: - description: The observed state of the underlying GCP resource. + description: ObservedState is the state of the resource as most recently + observed in GCP. properties: cloudResource: - description: Container for connection properties for delegation - of access to GCP resources. properties: - serviceAccountId: - description: The account ID of the service created for the - purpose of this connection. + serviceAccountID: + description: |- + Output only. The account ID of the service created for the purpose of this + connection. + + The service account does not have any permissions associated with it + when it is created. After creation, customers delegate permissions + to the service account. When the connection is used in the context of an + operation in BigQuery, the service account will be used to connect to the + desired resources in GCP. + + The account ID is in the form of: + @gcp-sa-bigquery-cloudresource.iam.gserviceaccount.com type: string type: object type: object type: object - required: - - spec type: object served: true storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/crds/bigquerydatapolicy_v1alpha1_bigquerydatapolicydatapolicy.yaml b/crds/bigquerydatapolicy_v1alpha1_bigquerydatapolicydatapolicy.yaml index 089720d2a4..61c040806e 100644 --- a/crds/bigquerydatapolicy_v1alpha1_bigquerydatapolicydatapolicy.yaml +++ b/crds/bigquerydatapolicy_v1alpha1_bigquerydatapolicydatapolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/bigquerydatatransfer_v1alpha1_bigquerydatatransferconfig.yaml b/crds/bigquerydatatransfer_v1alpha1_bigquerydatatransferconfig.yaml index 7411e4c446..87a671ba61 100644 --- a/crds/bigquerydatatransfer_v1alpha1_bigquerydatatransferconfig.yaml +++ b/crds/bigquerydatatransfer_v1alpha1_bigquerydatatransferconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/bigqueryreservation_v1alpha1_bigqueryreservationcapacitycommitment.yaml b/crds/bigqueryreservation_v1alpha1_bigqueryreservationcapacitycommitment.yaml index 07bb39c8bc..3540ff3423 100644 --- a/crds/bigqueryreservation_v1alpha1_bigqueryreservationcapacitycommitment.yaml +++ b/crds/bigqueryreservation_v1alpha1_bigqueryreservationcapacitycommitment.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/bigqueryreservation_v1alpha1_bigqueryreservationreservation.yaml b/crds/bigqueryreservation_v1alpha1_bigqueryreservationreservation.yaml index 2e1e5a8755..9dea1d67d1 100644 --- a/crds/bigqueryreservation_v1alpha1_bigqueryreservationreservation.yaml +++ b/crds/bigqueryreservation_v1alpha1_bigqueryreservationreservation.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/bigtable_v1beta1_bigtableappprofile.yaml b/crds/bigtable_v1beta1_bigtableappprofile.yaml index 71811fdb80..542415f64b 100644 --- a/crds/bigtable_v1beta1_bigtableappprofile.yaml +++ b/crds/bigtable_v1beta1_bigtableappprofile.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/bigtable_v1beta1_bigtablegcpolicy.yaml b/crds/bigtable_v1beta1_bigtablegcpolicy.yaml index 4c1aa6e8f9..c518160045 100644 --- a/crds/bigtable_v1beta1_bigtablegcpolicy.yaml +++ b/crds/bigtable_v1beta1_bigtablegcpolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/bigtable_v1beta1_bigtableinstance.yaml b/crds/bigtable_v1beta1_bigtableinstance.yaml index c16676bbe3..1bdb819f30 100644 --- a/crds/bigtable_v1beta1_bigtableinstance.yaml +++ b/crds/bigtable_v1beta1_bigtableinstance.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -142,15 +142,14 @@ spec: - external properties: external: - description: The KMSCryptoKeyRef selfLink, when not managed - by KCC. + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: The `name` field of a `KMSCryptoKeyRef` resource. + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: The `namespace` field of a `KMSCryptoKeyRef` - resource. + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object numNodes: diff --git a/crds/bigtable_v1beta1_bigtabletable.yaml b/crds/bigtable_v1beta1_bigtabletable.yaml index 5abe1592e6..f8dc8aef67 100644 --- a/crds/bigtable_v1beta1_bigtabletable.yaml +++ b/crds/bigtable_v1beta1_bigtabletable.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/billingbudgets_v1beta1_billingbudgetsbudget.yaml b/crds/billingbudgets_v1beta1_billingbudgetsbudget.yaml index 3ea409e839..7240511777 100644 --- a/crds/billingbudgets_v1beta1_billingbudgetsbudget.yaml +++ b/crds/billingbudgets_v1beta1_billingbudgetsbudget.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/binaryauthorization_v1beta1_binaryauthorizationattestor.yaml b/crds/binaryauthorization_v1beta1_binaryauthorizationattestor.yaml index 0adb01b45b..b3028f3b4e 100644 --- a/crds/binaryauthorization_v1beta1_binaryauthorizationattestor.yaml +++ b/crds/binaryauthorization_v1beta1_binaryauthorizationattestor.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/binaryauthorization_v1beta1_binaryauthorizationpolicy.yaml b/crds/binaryauthorization_v1beta1_binaryauthorizationpolicy.yaml index 8109823f08..050969cb89 100644 --- a/crds/binaryauthorization_v1beta1_binaryauthorizationpolicy.yaml +++ b/crds/binaryauthorization_v1beta1_binaryauthorizationpolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/certificatemanager_v1beta1_certificatemanagercertificate.yaml b/crds/certificatemanager_v1beta1_certificatemanagercertificate.yaml index 5b980aa688..c028708d9f 100644 --- a/crds/certificatemanager_v1beta1_certificatemanagercertificate.yaml +++ b/crds/certificatemanager_v1beta1_certificatemanagercertificate.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/certificatemanager_v1beta1_certificatemanagercertificatemap.yaml b/crds/certificatemanager_v1beta1_certificatemanagercertificatemap.yaml index eaabd4870e..676f3fcb98 100644 --- a/crds/certificatemanager_v1beta1_certificatemanagercertificatemap.yaml +++ b/crds/certificatemanager_v1beta1_certificatemanagercertificatemap.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/certificatemanager_v1beta1_certificatemanagercertificatemapentry.yaml b/crds/certificatemanager_v1beta1_certificatemanagercertificatemapentry.yaml index af390df9b6..0cbc63001a 100644 --- a/crds/certificatemanager_v1beta1_certificatemanagercertificatemapentry.yaml +++ b/crds/certificatemanager_v1beta1_certificatemanagercertificatemapentry.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/certificatemanager_v1beta1_certificatemanagerdnsauthorization.yaml b/crds/certificatemanager_v1beta1_certificatemanagerdnsauthorization.yaml index 422ae7757a..3aacd0c193 100644 --- a/crds/certificatemanager_v1beta1_certificatemanagerdnsauthorization.yaml +++ b/crds/certificatemanager_v1beta1_certificatemanagerdnsauthorization.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/cloudasset_v1alpha1_cloudassetfolderfeed.yaml b/crds/cloudasset_v1alpha1_cloudassetfolderfeed.yaml index 5b990c8f8a..5fc768da7b 100644 --- a/crds/cloudasset_v1alpha1_cloudassetfolderfeed.yaml +++ b/crds/cloudasset_v1alpha1_cloudassetfolderfeed.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/cloudasset_v1alpha1_cloudassetorganizationfeed.yaml b/crds/cloudasset_v1alpha1_cloudassetorganizationfeed.yaml index a8cf7e6425..f827ca55a8 100644 --- a/crds/cloudasset_v1alpha1_cloudassetorganizationfeed.yaml +++ b/crds/cloudasset_v1alpha1_cloudassetorganizationfeed.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/cloudasset_v1alpha1_cloudassetprojectfeed.yaml b/crds/cloudasset_v1alpha1_cloudassetprojectfeed.yaml index 7449a41d23..d43f656e9b 100644 --- a/crds/cloudasset_v1alpha1_cloudassetprojectfeed.yaml +++ b/crds/cloudasset_v1alpha1_cloudassetprojectfeed.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/cloudbuild_v1beta1_cloudbuildtrigger.yaml b/crds/cloudbuild_v1beta1_cloudbuildtrigger.yaml index 95517c9577..cebb940d93 100644 --- a/crds/cloudbuild_v1beta1_cloudbuildtrigger.yaml +++ b/crds/cloudbuild_v1beta1_cloudbuildtrigger.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/cloudbuild_v1beta1_cloudbuildworkerpool.yaml b/crds/cloudbuild_v1beta1_cloudbuildworkerpool.yaml index 0d262d39f3..4060531d08 100644 --- a/crds/cloudbuild_v1beta1_cloudbuildworkerpool.yaml +++ b/crds/cloudbuild_v1beta1_cloudbuildworkerpool.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84,7 +84,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -267,6 +267,9 @@ spec: of 16 bits, with an automatically determined IP within the peered VPC. If unspecified, a value of `/24` will be used. type: string + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf peeredNetworkRef: description: Immutable. The network definition that the workers are peered to. If this section is left empty, the workers @@ -289,7 +292,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -299,6 +302,9 @@ spec: resource. type: string type: object + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf type: object workerConfig: description: Machine configuration for the workers in the pool. @@ -391,7 +397,7 @@ spec: type: object type: array externalRef: - description: A unique specifier for the CloudBuild workerpool resource + description: A unique Config Connector specifier for the resource in GCP. type: string observedGeneration: diff --git a/crds/cloudfunctions2_v1alpha1_cloudfunctions2function.yaml b/crds/cloudfunctions2_v1alpha1_cloudfunctions2function.yaml index 7a1f3ee443..7e92c7bbd4 100644 --- a/crds/cloudfunctions2_v1alpha1_cloudfunctions2function.yaml +++ b/crds/cloudfunctions2_v1alpha1_cloudfunctions2function.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/cloudfunctions_v1beta1_cloudfunctionsfunction.yaml b/crds/cloudfunctions_v1beta1_cloudfunctionsfunction.yaml index eabb9ad8ce..d8113f384f 100644 --- a/crds/cloudfunctions_v1beta1_cloudfunctionsfunction.yaml +++ b/crds/cloudfunctions_v1beta1_cloudfunctionsfunction.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/cloudidentity_v1beta1_cloudidentitygroup.yaml b/crds/cloudidentity_v1beta1_cloudidentitygroup.yaml index 9c4aaac1f7..05759d24ad 100644 --- a/crds/cloudidentity_v1beta1_cloudidentitygroup.yaml +++ b/crds/cloudidentity_v1beta1_cloudidentitygroup.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/cloudidentity_v1beta1_cloudidentitymembership.yaml b/crds/cloudidentity_v1beta1_cloudidentitymembership.yaml index faecb6baba..9130ec45ad 100644 --- a/crds/cloudidentity_v1beta1_cloudidentitymembership.yaml +++ b/crds/cloudidentity_v1beta1_cloudidentitymembership.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/cloudids_v1beta1_cloudidsendpoint.yaml b/crds/cloudids_v1beta1_cloudidsendpoint.yaml index 23bec70540..5652d4e615 100644 --- a/crds/cloudids_v1beta1_cloudidsendpoint.yaml +++ b/crds/cloudids_v1beta1_cloudidsendpoint.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/cloudiot_v1alpha1_cloudiotdevice.yaml b/crds/cloudiot_v1alpha1_cloudiotdevice.yaml index 091ab28355..9870b10bc8 100644 --- a/crds/cloudiot_v1alpha1_cloudiotdevice.yaml +++ b/crds/cloudiot_v1alpha1_cloudiotdevice.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/cloudiot_v1alpha1_cloudiotdeviceregistry.yaml b/crds/cloudiot_v1alpha1_cloudiotdeviceregistry.yaml index 10b025790d..ace47496ef 100644 --- a/crds/cloudiot_v1alpha1_cloudiotdeviceregistry.yaml +++ b/crds/cloudiot_v1alpha1_cloudiotdeviceregistry.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/cloudscheduler_v1beta1_cloudschedulerjob.yaml b/crds/cloudscheduler_v1beta1_cloudschedulerjob.yaml index a1d3de2844..e3419459fe 100644 --- a/crds/cloudscheduler_v1beta1_cloudschedulerjob.yaml +++ b/crds/cloudscheduler_v1beta1_cloudschedulerjob.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/cloudtasks_v1alpha1_cloudtasksqueue.yaml b/crds/cloudtasks_v1alpha1_cloudtasksqueue.yaml index f6f7428f58..95b6ea6f63 100644 --- a/crds/cloudtasks_v1alpha1_cloudtasksqueue.yaml +++ b/crds/cloudtasks_v1alpha1_cloudtasksqueue.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computeautoscaler.yaml b/crds/compute_v1alpha1_computeautoscaler.yaml index b547344f55..df30b528be 100644 --- a/crds/compute_v1alpha1_computeautoscaler.yaml +++ b/crds/compute_v1alpha1_computeautoscaler.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computebackendbucketsignedurlkey.yaml b/crds/compute_v1alpha1_computebackendbucketsignedurlkey.yaml index 98a99981f5..f90bd65f27 100644 --- a/crds/compute_v1alpha1_computebackendbucketsignedurlkey.yaml +++ b/crds/compute_v1alpha1_computebackendbucketsignedurlkey.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computebackendservicesignedurlkey.yaml b/crds/compute_v1alpha1_computebackendservicesignedurlkey.yaml index b6705b8812..90fbcd444a 100644 --- a/crds/compute_v1alpha1_computebackendservicesignedurlkey.yaml +++ b/crds/compute_v1alpha1_computebackendservicesignedurlkey.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computediskresourcepolicyattachment.yaml b/crds/compute_v1alpha1_computediskresourcepolicyattachment.yaml index 9349ad6649..56928788ff 100644 --- a/crds/compute_v1alpha1_computediskresourcepolicyattachment.yaml +++ b/crds/compute_v1alpha1_computediskresourcepolicyattachment.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computeglobalnetworkendpoint.yaml b/crds/compute_v1alpha1_computeglobalnetworkendpoint.yaml index 698e58adb7..9569e18241 100644 --- a/crds/compute_v1alpha1_computeglobalnetworkendpoint.yaml +++ b/crds/compute_v1alpha1_computeglobalnetworkendpoint.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computeglobalnetworkendpointgroup.yaml b/crds/compute_v1alpha1_computeglobalnetworkendpointgroup.yaml index 57eddd74d8..f35810dfd9 100644 --- a/crds/compute_v1alpha1_computeglobalnetworkendpointgroup.yaml +++ b/crds/compute_v1alpha1_computeglobalnetworkendpointgroup.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computeinstancegroupnamedport.yaml b/crds/compute_v1alpha1_computeinstancegroupnamedport.yaml index 3bfafe09d1..a1216b1000 100644 --- a/crds/compute_v1alpha1_computeinstancegroupnamedport.yaml +++ b/crds/compute_v1alpha1_computeinstancegroupnamedport.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computemachineimage.yaml b/crds/compute_v1alpha1_computemachineimage.yaml index c06552c982..3d0fc9bada 100644 --- a/crds/compute_v1alpha1_computemachineimage.yaml +++ b/crds/compute_v1alpha1_computemachineimage.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computenetworkendpoint.yaml b/crds/compute_v1alpha1_computenetworkendpoint.yaml index a48a5744ba..72a883d9e4 100644 --- a/crds/compute_v1alpha1_computenetworkendpoint.yaml +++ b/crds/compute_v1alpha1_computenetworkendpoint.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computenetworkfirewallpolicyrule.yaml b/crds/compute_v1alpha1_computenetworkfirewallpolicyrule.yaml index 63916fbb3c..ee438eebc7 100644 --- a/crds/compute_v1alpha1_computenetworkfirewallpolicyrule.yaml +++ b/crds/compute_v1alpha1_computenetworkfirewallpolicyrule.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computenetworkpeeringroutesconfig.yaml b/crds/compute_v1alpha1_computenetworkpeeringroutesconfig.yaml index 1dbd1ff6bc..26be9f901c 100644 --- a/crds/compute_v1alpha1_computenetworkpeeringroutesconfig.yaml +++ b/crds/compute_v1alpha1_computenetworkpeeringroutesconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computeorganizationsecuritypolicy.yaml b/crds/compute_v1alpha1_computeorganizationsecuritypolicy.yaml index 6ff309f574..bbc4b186f7 100644 --- a/crds/compute_v1alpha1_computeorganizationsecuritypolicy.yaml +++ b/crds/compute_v1alpha1_computeorganizationsecuritypolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computeorganizationsecuritypolicyassociation.yaml b/crds/compute_v1alpha1_computeorganizationsecuritypolicyassociation.yaml index 3489a521cf..85cdd5980b 100644 --- a/crds/compute_v1alpha1_computeorganizationsecuritypolicyassociation.yaml +++ b/crds/compute_v1alpha1_computeorganizationsecuritypolicyassociation.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computeorganizationsecuritypolicyrule.yaml b/crds/compute_v1alpha1_computeorganizationsecuritypolicyrule.yaml index 667208c2f0..d27868c48c 100644 --- a/crds/compute_v1alpha1_computeorganizationsecuritypolicyrule.yaml +++ b/crds/compute_v1alpha1_computeorganizationsecuritypolicyrule.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computeperinstanceconfig.yaml b/crds/compute_v1alpha1_computeperinstanceconfig.yaml index 829d7d00ec..cbee56a699 100644 --- a/crds/compute_v1alpha1_computeperinstanceconfig.yaml +++ b/crds/compute_v1alpha1_computeperinstanceconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computeregionautoscaler.yaml b/crds/compute_v1alpha1_computeregionautoscaler.yaml index d82ed25a7f..94f38d0839 100644 --- a/crds/compute_v1alpha1_computeregionautoscaler.yaml +++ b/crds/compute_v1alpha1_computeregionautoscaler.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computeregiondiskresourcepolicyattachment.yaml b/crds/compute_v1alpha1_computeregiondiskresourcepolicyattachment.yaml index 54df6aa3fc..b8688ecf72 100644 --- a/crds/compute_v1alpha1_computeregiondiskresourcepolicyattachment.yaml +++ b/crds/compute_v1alpha1_computeregiondiskresourcepolicyattachment.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computeregionperinstanceconfig.yaml b/crds/compute_v1alpha1_computeregionperinstanceconfig.yaml index e8e183a6aa..e9bf8725f2 100644 --- a/crds/compute_v1alpha1_computeregionperinstanceconfig.yaml +++ b/crds/compute_v1alpha1_computeregionperinstanceconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1alpha1_computeregionsslpolicy.yaml b/crds/compute_v1alpha1_computeregionsslpolicy.yaml index 8cf93aa3d3..b96319da83 100644 --- a/crds/compute_v1alpha1_computeregionsslpolicy.yaml +++ b/crds/compute_v1alpha1_computeregionsslpolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computeaddress.yaml b/crds/compute_v1beta1_computeaddress.yaml index b20033b661..73869931ae 100644 --- a/crds/compute_v1beta1_computeaddress.yaml +++ b/crds/compute_v1beta1_computeaddress.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computebackendbucket.yaml b/crds/compute_v1beta1_computebackendbucket.yaml index ef29d76260..0ff4a9d013 100644 --- a/crds/compute_v1beta1_computebackendbucket.yaml +++ b/crds/compute_v1beta1_computebackendbucket.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computebackendservice.yaml b/crds/compute_v1beta1_computebackendservice.yaml index c36e667872..5a5e9c565f 100644 --- a/crds/compute_v1beta1_computebackendservice.yaml +++ b/crds/compute_v1beta1_computebackendservice.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computedisk.yaml b/crds/compute_v1beta1_computedisk.yaml index 30eb243b35..dad5d9eaab 100644 --- a/crds/compute_v1beta1_computedisk.yaml +++ b/crds/compute_v1beta1_computedisk.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computeexternalvpngateway.yaml b/crds/compute_v1beta1_computeexternalvpngateway.yaml index 59790e782e..cb91554a7b 100644 --- a/crds/compute_v1beta1_computeexternalvpngateway.yaml +++ b/crds/compute_v1beta1_computeexternalvpngateway.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computefirewall.yaml b/crds/compute_v1beta1_computefirewall.yaml index 4735d08ee3..3be75cd2a3 100644 --- a/crds/compute_v1beta1_computefirewall.yaml +++ b/crds/compute_v1beta1_computefirewall.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computefirewallpolicy.yaml b/crds/compute_v1beta1_computefirewallpolicy.yaml index 71b646715e..a911901acf 100644 --- a/crds/compute_v1beta1_computefirewallpolicy.yaml +++ b/crds/compute_v1beta1_computefirewallpolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/compute_v1beta1_computefirewallpolicyassociation.yaml b/crds/compute_v1beta1_computefirewallpolicyassociation.yaml index a02bfccc83..6cd4fe57b7 100644 --- a/crds/compute_v1beta1_computefirewallpolicyassociation.yaml +++ b/crds/compute_v1beta1_computefirewallpolicyassociation.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/compute_v1beta1_computefirewallpolicyrule.yaml b/crds/compute_v1beta1_computefirewallpolicyrule.yaml index 530b2c4eaf..e4f9a9d41a 100644 --- a/crds/compute_v1beta1_computefirewallpolicyrule.yaml +++ b/crds/compute_v1beta1_computefirewallpolicyrule.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/compute_v1beta1_computeforwardingrule.yaml b/crds/compute_v1beta1_computeforwardingrule.yaml index be1f34eb8c..9cd1d52f6a 100644 --- a/crds/compute_v1beta1_computeforwardingrule.yaml +++ b/crds/compute_v1beta1_computeforwardingrule.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30,6 +30,7 @@ spec: categories: - gcp kind: ComputeForwardingRule + listKind: ComputeForwardingRuleList plural: computeforwardingrules shortNames: - gcpcomputeforwardingrule @@ -56,16 +57,17 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: ComputeForwardingRule is the Schema for the compute API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object @@ -106,9 +108,8 @@ spec: whether the PSC endpoint can be accessed from another region. type: boolean backendServiceRef: - description: |- - A ComputeBackendService to receive the matched traffic. This is - used only for internal load balancing. + description: A ComputeBackendService to receive the matched traffic. + This is used only for internal load balancing. oneOf: - not: required: @@ -125,20 +126,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeBackendService` - resource.' + description: The ComputeBackendService selflink in the form "projects/{{project}}/global/backendServices/{{name}}" + or "projects/{{project}}/regions/{{region}}/backendServices/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeBackendService` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeBackendService` + resource. type: string type: object description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. + description: Immutable. An optional description of this resource. + Provide this property when you create the resource. type: string ipAddress: description: |- @@ -161,11 +163,6 @@ spec: forwarding rule. By default, if this field is empty, an ephemeral internal IP address will be automatically allocated from the IP range of the subnet or network configured for this forwarding rule. - oneOf: - - required: - - addressRef - - required: - - ip properties: addressRef: oneOf: @@ -184,14 +181,14 @@ spec: - external properties: external: - description: 'Allowed value: The `address` field of a `ComputeAddress` - resource.' + description: The ComputeAddress selflink in the form "projects/{{project}}/regions/{{region}}/addresses/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeAddress` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeAddress` resource. type: string type: object ip: @@ -273,14 +270,12 @@ spec: items: properties: name: - description: |- - Immutable. Name of the metadata label. The length must be between - 1 and 1024 characters, inclusive. + description: Immutable. Name of the metadata label. The + length must be between 1 and 1024 characters, inclusive. type: string value: - description: |- - Immutable. The value that the label must match. The value has a maximum - length of 1024 characters. + description: Immutable. The value that the label must + match. The value has a maximum length of 1024 characters. type: string required: - name @@ -303,11 +298,10 @@ spec: type: object type: array networkRef: - description: |- - This field is not used for external load balancing. For internal - load balancing, this field identifies the network that the load - balanced IP should belong to for this forwarding rule. If this - field is not specified, the default network will be used. + description: This field is not used for external load balancing. For + internal load balancing, this field identifies the network that + the load balanced IP should belong to for this forwarding rule. + If this field is not specified, the default network will be used. oneOf: - not: required: @@ -324,14 +318,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object networkTier: @@ -365,7 +359,6 @@ spec: [port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications) for details. - Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. @@ -387,7 +380,6 @@ spec: * By internal TCP/UDP load balancers, backend service-based network load balancers, internal protocol forwarding and when protocol is not L3_DEFAULT. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. Only packets addressed to these ports will be forwarded to the backends configured with this @@ -478,37 +470,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object target: - description: |- - The target resource to receive the matched traffic. The forwarded - traffic must be of a type appropriate to the target object. For - INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets + description: The target resource to receive the matched traffic. The + forwarded traffic must be of a type appropriate to the target object. + For INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets are valid. - oneOf: - - required: - - serviceAttachmentRef - - required: - - targetGRPCProxyRef - - required: - - targetHTTPProxyRef - - required: - - targetHTTPSProxyRef - - required: - - targetSSLProxyRef - - required: - - targetTCPProxyRef - - required: - - targetVPNGatewayRef properties: serviceAttachmentRef: oneOf: @@ -527,14 +503,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeServiceAttachment` - resource.' + description: The ComputeServiceAttachment selflink in the + form "projects/{{project}}/regions/{{region}}/serviceAttachments/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeServiceAttachment` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeServiceAttachment` + resource. type: string type: object targetGRPCProxyRef: @@ -554,14 +533,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetGRPCProxy` - resource.' + description: The ComputeTargetGrpcProxy selflink in the form + "projects/{{project}}/global/targetGrpcProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetGrpcProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetGrpcProxy` + resource. type: string type: object targetHTTPProxyRef: @@ -581,14 +563,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPProxy` - resource.' + description: The ComputeTargetHTTPProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPProxy` + resource. type: string type: object targetHTTPSProxyRef: @@ -608,14 +594,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPSProxy` - resource.' + description: The ComputeTargetHTTPSProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPSProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPSProxy` + resource. type: string type: object targetSSLProxyRef: @@ -635,14 +625,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetSSLProxy` - resource.' + description: The ComputeTargetSSLProxy selflink in the form + "projects/{{project}}/global/targetSslProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetSSLProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetSSLProxy` + resource. type: string type: object targetTCPProxyRef: @@ -662,14 +655,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetTCPProxy` - resource.' + description: The ComputeTargetTCPProxy selflink in the form + "projects/{{project}}/global/targetTcpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetTcpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetTCPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetTCPProxy` + resource. type: string type: object targetVPNGatewayRef: @@ -689,14 +686,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetVPNGateway` - resource.' + description: The ComputeTargetVPNGateway selflink in the form + "projects/{{project}}/regions/{{region}}/targetVpnGateways/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetVPNGateway` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetVPNGateway` + resource. type: string type: object type: object @@ -713,8 +713,8 @@ spec: if the current Forwarding Rule does not have sourceIPRanges specified.' type: string conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -741,9 +741,12 @@ spec: creationTimestamp: description: Creation timestamp in RFC3339 text format. type: string + externalRef: + description: A unique Config Connector specifier for the resource + in GCP. + type: string labelFingerprint: - description: |- - The fingerprint used for optimistic locking of this resource. Used + description: The fingerprint used for optimistic locking of this resource. Used internally during updates. type: string observedGeneration: @@ -752,6 +755,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer pscConnectionId: description: The PSC connection id of the PSC Forwarding Rule. @@ -770,8 +774,6 @@ spec: This field is only used for INTERNAL load balancing. type: string type: object - required: - - spec type: object served: true storage: true @@ -781,5 +783,5 @@ status: acceptedNames: kind: "" plural: "" - conditions: [] - storedVersions: [] + conditions: null + storedVersions: null diff --git a/crds/compute_v1beta1_computehealthcheck.yaml b/crds/compute_v1beta1_computehealthcheck.yaml index c69f3cea77..6e428f8510 100644 --- a/crds/compute_v1beta1_computehealthcheck.yaml +++ b/crds/compute_v1beta1_computehealthcheck.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computehttphealthcheck.yaml b/crds/compute_v1beta1_computehttphealthcheck.yaml index a9f1682b1b..04de731924 100644 --- a/crds/compute_v1beta1_computehttphealthcheck.yaml +++ b/crds/compute_v1beta1_computehttphealthcheck.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computehttpshealthcheck.yaml b/crds/compute_v1beta1_computehttpshealthcheck.yaml index 8b125826f0..607385d637 100644 --- a/crds/compute_v1beta1_computehttpshealthcheck.yaml +++ b/crds/compute_v1beta1_computehttpshealthcheck.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computeimage.yaml b/crds/compute_v1beta1_computeimage.yaml index efa27e087b..04821305fb 100644 --- a/crds/compute_v1beta1_computeimage.yaml +++ b/crds/compute_v1beta1_computeimage.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computeinstance.yaml b/crds/compute_v1beta1_computeinstance.yaml index f87aed3a56..e6d169ffef 100644 --- a/crds/compute_v1beta1_computeinstance.yaml +++ b/crds/compute_v1beta1_computeinstance.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computeinstancegroup.yaml b/crds/compute_v1beta1_computeinstancegroup.yaml index f6dfbd64e5..f2cc9b1b06 100644 --- a/crds/compute_v1beta1_computeinstancegroup.yaml +++ b/crds/compute_v1beta1_computeinstancegroup.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computeinstancegroupmanager.yaml b/crds/compute_v1beta1_computeinstancegroupmanager.yaml index 40b3aa14f9..552ca8ea68 100644 --- a/crds/compute_v1beta1_computeinstancegroupmanager.yaml +++ b/crds/compute_v1beta1_computeinstancegroupmanager.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/compute_v1beta1_computeinstancetemplate.yaml b/crds/compute_v1beta1_computeinstancetemplate.yaml index 84911ef20b..262cc05a62 100644 --- a/crds/compute_v1beta1_computeinstancetemplate.yaml +++ b/crds/compute_v1beta1_computeinstancetemplate.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computeinterconnectattachment.yaml b/crds/compute_v1beta1_computeinterconnectattachment.yaml index d41cf99703..66f6d114a8 100644 --- a/crds/compute_v1beta1_computeinterconnectattachment.yaml +++ b/crds/compute_v1beta1_computeinterconnectattachment.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computemanagedsslcertificate.yaml b/crds/compute_v1beta1_computemanagedsslcertificate.yaml index 31ef25d336..e9d1f41f25 100644 --- a/crds/compute_v1beta1_computemanagedsslcertificate.yaml +++ b/crds/compute_v1beta1_computemanagedsslcertificate.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computenetwork.yaml b/crds/compute_v1beta1_computenetwork.yaml index b516024ded..d000d1af01 100644 --- a/crds/compute_v1beta1_computenetwork.yaml +++ b/crds/compute_v1beta1_computenetwork.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computenetworkendpointgroup.yaml b/crds/compute_v1beta1_computenetworkendpointgroup.yaml index 43d3608300..6ab92b9052 100644 --- a/crds/compute_v1beta1_computenetworkendpointgroup.yaml +++ b/crds/compute_v1beta1_computenetworkendpointgroup.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computenetworkfirewallpolicy.yaml b/crds/compute_v1beta1_computenetworkfirewallpolicy.yaml index deca41722d..4f78f891f0 100644 --- a/crds/compute_v1beta1_computenetworkfirewallpolicy.yaml +++ b/crds/compute_v1beta1_computenetworkfirewallpolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computenetworkfirewallpolicyassociation.yaml b/crds/compute_v1beta1_computenetworkfirewallpolicyassociation.yaml index 09683eb337..35e45caefa 100644 --- a/crds/compute_v1beta1_computenetworkfirewallpolicyassociation.yaml +++ b/crds/compute_v1beta1_computenetworkfirewallpolicyassociation.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computenetworkpeering.yaml b/crds/compute_v1beta1_computenetworkpeering.yaml index 9f048b787d..3d1f61ff83 100644 --- a/crds/compute_v1beta1_computenetworkpeering.yaml +++ b/crds/compute_v1beta1_computenetworkpeering.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computenodegroup.yaml b/crds/compute_v1beta1_computenodegroup.yaml index c4ddb80b79..8622c9e9cc 100644 --- a/crds/compute_v1beta1_computenodegroup.yaml +++ b/crds/compute_v1beta1_computenodegroup.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computenodetemplate.yaml b/crds/compute_v1beta1_computenodetemplate.yaml index ed4ebe977e..84a571ea9b 100644 --- a/crds/compute_v1beta1_computenodetemplate.yaml +++ b/crds/compute_v1beta1_computenodetemplate.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computepacketmirroring.yaml b/crds/compute_v1beta1_computepacketmirroring.yaml index cd4fe52129..32f4463a93 100644 --- a/crds/compute_v1beta1_computepacketmirroring.yaml +++ b/crds/compute_v1beta1_computepacketmirroring.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/compute_v1beta1_computeprojectmetadata.yaml b/crds/compute_v1beta1_computeprojectmetadata.yaml index c440704937..1186efe44d 100644 --- a/crds/compute_v1beta1_computeprojectmetadata.yaml +++ b/crds/compute_v1beta1_computeprojectmetadata.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computeregionnetworkendpointgroup.yaml b/crds/compute_v1beta1_computeregionnetworkendpointgroup.yaml index fb24b3fe57..1a2ae1d66b 100644 --- a/crds/compute_v1beta1_computeregionnetworkendpointgroup.yaml +++ b/crds/compute_v1beta1_computeregionnetworkendpointgroup.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computereservation.yaml b/crds/compute_v1beta1_computereservation.yaml index 2f3f277b04..855a207435 100644 --- a/crds/compute_v1beta1_computereservation.yaml +++ b/crds/compute_v1beta1_computereservation.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computeresourcepolicy.yaml b/crds/compute_v1beta1_computeresourcepolicy.yaml index 96348446aa..6b99582536 100644 --- a/crds/compute_v1beta1_computeresourcepolicy.yaml +++ b/crds/compute_v1beta1_computeresourcepolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computeroute.yaml b/crds/compute_v1beta1_computeroute.yaml index dbe0ae3cfa..c908e8d253 100644 --- a/crds/compute_v1beta1_computeroute.yaml +++ b/crds/compute_v1beta1_computeroute.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computerouter.yaml b/crds/compute_v1beta1_computerouter.yaml index 8126e9cb78..92ee492b94 100644 --- a/crds/compute_v1beta1_computerouter.yaml +++ b/crds/compute_v1beta1_computerouter.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computerouterinterface.yaml b/crds/compute_v1beta1_computerouterinterface.yaml index 41447fa66d..da24d00af9 100644 --- a/crds/compute_v1beta1_computerouterinterface.yaml +++ b/crds/compute_v1beta1_computerouterinterface.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computerouternat.yaml b/crds/compute_v1beta1_computerouternat.yaml index 17f0f0e808..7b159125b9 100644 --- a/crds/compute_v1beta1_computerouternat.yaml +++ b/crds/compute_v1beta1_computerouternat.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computerouterpeer.yaml b/crds/compute_v1beta1_computerouterpeer.yaml index 021aee7084..9dd11c229e 100644 --- a/crds/compute_v1beta1_computerouterpeer.yaml +++ b/crds/compute_v1beta1_computerouterpeer.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computesecuritypolicy.yaml b/crds/compute_v1beta1_computesecuritypolicy.yaml index 851759a7af..a7a36f9ea8 100644 --- a/crds/compute_v1beta1_computesecuritypolicy.yaml +++ b/crds/compute_v1beta1_computesecuritypolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computeserviceattachment.yaml b/crds/compute_v1beta1_computeserviceattachment.yaml index eed196fd01..81a3281e1b 100644 --- a/crds/compute_v1beta1_computeserviceattachment.yaml +++ b/crds/compute_v1beta1_computeserviceattachment.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/compute_v1beta1_computesharedvpchostproject.yaml b/crds/compute_v1beta1_computesharedvpchostproject.yaml index 10079f80f2..3e8d0e906c 100644 --- a/crds/compute_v1beta1_computesharedvpchostproject.yaml +++ b/crds/compute_v1beta1_computesharedvpchostproject.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computesharedvpcserviceproject.yaml b/crds/compute_v1beta1_computesharedvpcserviceproject.yaml index abf9bffca9..9b1909e8f2 100644 --- a/crds/compute_v1beta1_computesharedvpcserviceproject.yaml +++ b/crds/compute_v1beta1_computesharedvpcserviceproject.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computesnapshot.yaml b/crds/compute_v1beta1_computesnapshot.yaml index ceeedcefd6..c8f803cbd8 100644 --- a/crds/compute_v1beta1_computesnapshot.yaml +++ b/crds/compute_v1beta1_computesnapshot.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computesslcertificate.yaml b/crds/compute_v1beta1_computesslcertificate.yaml index 5cb5bf0ac9..4f224fd969 100644 --- a/crds/compute_v1beta1_computesslcertificate.yaml +++ b/crds/compute_v1beta1_computesslcertificate.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computesslpolicy.yaml b/crds/compute_v1beta1_computesslpolicy.yaml index f9e2eecb87..936f00f8bd 100644 --- a/crds/compute_v1beta1_computesslpolicy.yaml +++ b/crds/compute_v1beta1_computesslpolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computesubnetwork.yaml b/crds/compute_v1beta1_computesubnetwork.yaml index a56b7ce2d8..405f7028d7 100644 --- a/crds/compute_v1beta1_computesubnetwork.yaml +++ b/crds/compute_v1beta1_computesubnetwork.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computetargetgrpcproxy.yaml b/crds/compute_v1beta1_computetargetgrpcproxy.yaml index cf3538bcc0..d357e37bf7 100644 --- a/crds/compute_v1beta1_computetargetgrpcproxy.yaml +++ b/crds/compute_v1beta1_computetargetgrpcproxy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computetargethttpproxy.yaml b/crds/compute_v1beta1_computetargethttpproxy.yaml index ec0414409f..8aeefc94e3 100644 --- a/crds/compute_v1beta1_computetargethttpproxy.yaml +++ b/crds/compute_v1beta1_computetargethttpproxy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computetargethttpsproxy.yaml b/crds/compute_v1beta1_computetargethttpsproxy.yaml index 3578998c50..726c3354e8 100644 --- a/crds/compute_v1beta1_computetargethttpsproxy.yaml +++ b/crds/compute_v1beta1_computetargethttpsproxy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computetargetinstance.yaml b/crds/compute_v1beta1_computetargetinstance.yaml index 7c936908ee..47bc354646 100644 --- a/crds/compute_v1beta1_computetargetinstance.yaml +++ b/crds/compute_v1beta1_computetargetinstance.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computetargetpool.yaml b/crds/compute_v1beta1_computetargetpool.yaml index ac62b117f3..52c445bad3 100644 --- a/crds/compute_v1beta1_computetargetpool.yaml +++ b/crds/compute_v1beta1_computetargetpool.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computetargetsslproxy.yaml b/crds/compute_v1beta1_computetargetsslproxy.yaml index b7c157cd77..3ebae4d8bf 100644 --- a/crds/compute_v1beta1_computetargetsslproxy.yaml +++ b/crds/compute_v1beta1_computetargetsslproxy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computetargettcpproxy.yaml b/crds/compute_v1beta1_computetargettcpproxy.yaml index cc15c39323..bf628caacd 100644 --- a/crds/compute_v1beta1_computetargettcpproxy.yaml +++ b/crds/compute_v1beta1_computetargettcpproxy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computetargetvpngateway.yaml b/crds/compute_v1beta1_computetargetvpngateway.yaml index f3401570b8..c24294c5c7 100644 --- a/crds/compute_v1beta1_computetargetvpngateway.yaml +++ b/crds/compute_v1beta1_computetargetvpngateway.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computeurlmap.yaml b/crds/compute_v1beta1_computeurlmap.yaml index c3423cf67e..94f3066efb 100644 --- a/crds/compute_v1beta1_computeurlmap.yaml +++ b/crds/compute_v1beta1_computeurlmap.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computevpngateway.yaml b/crds/compute_v1beta1_computevpngateway.yaml index 562baaf1e1..448b1b088f 100644 --- a/crds/compute_v1beta1_computevpngateway.yaml +++ b/crds/compute_v1beta1_computevpngateway.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/compute_v1beta1_computevpntunnel.yaml b/crds/compute_v1beta1_computevpntunnel.yaml index 7df3646079..0a26e7e176 100644 --- a/crds/compute_v1beta1_computevpntunnel.yaml +++ b/crds/compute_v1beta1_computevpntunnel.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/configcontroller_v1beta1_configcontrollerinstance.yaml b/crds/configcontroller_v1beta1_configcontrollerinstance.yaml index 7c50ebf437..f82c7da03c 100644 --- a/crds/configcontroller_v1beta1_configcontrollerinstance.yaml +++ b/crds/configcontroller_v1beta1_configcontrollerinstance.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/container_v1beta1_containercluster.yaml b/crds/container_v1beta1_containercluster.yaml index 0efe10166b..095f9f2184 100644 --- a/crds/container_v1beta1_containercluster.yaml +++ b/crds/container_v1beta1_containercluster.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -1391,18 +1391,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect diff --git a/crds/container_v1beta1_containernodepool.yaml b/crds/container_v1beta1_containernodepool.yaml index e6e606bc1c..e5516723ed 100644 --- a/crds/container_v1beta1_containernodepool.yaml +++ b/crds/container_v1beta1_containernodepool.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -719,18 +719,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect diff --git a/crds/containeranalysis_v1alpha1_containeranalysisoccurrence.yaml b/crds/containeranalysis_v1alpha1_containeranalysisoccurrence.yaml index 313843cce0..4d7e09b7d0 100644 --- a/crds/containeranalysis_v1alpha1_containeranalysisoccurrence.yaml +++ b/crds/containeranalysis_v1alpha1_containeranalysisoccurrence.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/containeranalysis_v1beta1_containeranalysisnote.yaml b/crds/containeranalysis_v1beta1_containeranalysisnote.yaml index 06ee3c431a..c9e69d8351 100644 --- a/crds/containeranalysis_v1beta1_containeranalysisnote.yaml +++ b/crds/containeranalysis_v1beta1_containeranalysisnote.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/containerattached_v1beta1_containerattachedcluster.yaml b/crds/containerattached_v1beta1_containerattachedcluster.yaml index 600ee6d910..4965694b86 100644 --- a/crds/containerattached_v1beta1_containerattachedcluster.yaml +++ b/crds/containerattached_v1beta1_containerattachedcluster.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/datacatalog_v1alpha1_datacatalogentry.yaml b/crds/datacatalog_v1alpha1_datacatalogentry.yaml index f1ab93eee7..348d9738d4 100644 --- a/crds/datacatalog_v1alpha1_datacatalogentry.yaml +++ b/crds/datacatalog_v1alpha1_datacatalogentry.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/datacatalog_v1alpha1_datacatalogentrygroup.yaml b/crds/datacatalog_v1alpha1_datacatalogentrygroup.yaml index dfa156a147..6183d77dff 100644 --- a/crds/datacatalog_v1alpha1_datacatalogentrygroup.yaml +++ b/crds/datacatalog_v1alpha1_datacatalogentrygroup.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/datacatalog_v1alpha1_datacatalogtag.yaml b/crds/datacatalog_v1alpha1_datacatalogtag.yaml index 06c9514474..15bb5ea706 100644 --- a/crds/datacatalog_v1alpha1_datacatalogtag.yaml +++ b/crds/datacatalog_v1alpha1_datacatalogtag.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/datacatalog_v1alpha1_datacatalogtagtemplate.yaml b/crds/datacatalog_v1alpha1_datacatalogtagtemplate.yaml index 72faf2d8e5..e5eb727f59 100644 --- a/crds/datacatalog_v1alpha1_datacatalogtagtemplate.yaml +++ b/crds/datacatalog_v1alpha1_datacatalogtagtemplate.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/datacatalog_v1beta1_datacatalogpolicytag.yaml b/crds/datacatalog_v1beta1_datacatalogpolicytag.yaml index c6b6c3aa69..a2e51bbab4 100644 --- a/crds/datacatalog_v1beta1_datacatalogpolicytag.yaml +++ b/crds/datacatalog_v1beta1_datacatalogpolicytag.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/datacatalog_v1beta1_datacatalogtaxonomy.yaml b/crds/datacatalog_v1beta1_datacatalogtaxonomy.yaml index 987166744c..4900ae7d97 100644 --- a/crds/datacatalog_v1beta1_datacatalogtaxonomy.yaml +++ b/crds/datacatalog_v1beta1_datacatalogtaxonomy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dataflow_v1beta1_dataflowflextemplatejob.yaml b/crds/dataflow_v1beta1_dataflowflextemplatejob.yaml index 85cbccd1f4..973e327c2a 100644 --- a/crds/dataflow_v1beta1_dataflowflextemplatejob.yaml +++ b/crds/dataflow_v1beta1_dataflowflextemplatejob.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30,6 +30,7 @@ spec: categories: - gcp kind: DataflowFlexTemplateJob + listKind: DataflowFlexTemplateJobList plural: dataflowflextemplatejobs shortNames: - gcpdataflowflextemplatejob @@ -56,42 +57,45 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: DataflowFlexTemplateJob is the Schema for the DataflowFlexTemplateJob + API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: + description: DataflowFlexTemplateJobSpec defines the desired state of + DataflowFlexTemplateJob properties: additionalExperiments: - description: List of experiments that should be used by the job. An - example value is ["enable_stackdriver_agent_metrics"]. + description: Additional experiment flags for the job. items: type: string type: array autoscalingAlgorithm: - description: The algorithm to use for autoscaling. + description: The algorithm to use for autoscaling type: string containerSpecGcsPath: + description: Cloud Storage path to a file with json serialized ContainerSpec + as content. type: string enableStreamingEngine: - description: Immutable. Indicates if the job should use the streaming - engine feature. + description: Whether to enable Streaming Engine for the job. type: boolean ipConfiguration: - description: The configuration for VM IPs. Options are "WORKER_IP_PUBLIC" - or "WORKER_IP_PRIVATE". + description: Configuration for VM IPs. type: string kmsKeyNameRef: - description: The name for the Cloud KMS key for the job. + description: The Cloud KMS key for the job. oneOf: - not: required: @@ -108,14 +112,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object launcherMachineType: @@ -123,14 +127,18 @@ spec: is n1-standard-1. type: string machineType: - description: The machine type to use for the job. + description: The machine type to use for the job. Defaults to the + value from the template if not specified. type: string maxWorkers: - description: Immutable. The maximum number of Google Compute Engine - instances to be made available to your pipeline during execution, - from 1 to 1000. + description: The maximum number of Google Compute Engine instances + to be made available to your pipeline during execution, from 1 to + 1000. + format: int32 type: integer networkRef: + description: Network to which VMs will be assigned. If empty or unspecified, + the service will use the network "default". oneOf: - not: required: @@ -147,21 +155,23 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object numWorkers: - description: Immutable. The initial number of Google Compute Engine - instances for the job. + description: The initial number of Google Compute Engine instances + for the job. + format: int32 type: integer parameters: + description: The parameters for FlexTemplate. Ex. {"num_workers":"5"} type: object x-kubernetes-preserve-unknown-fields: true region: @@ -174,6 +184,8 @@ spec: the SDK. Note this field is only valid for portable pipelines. type: string serviceAccountEmailRef: + description: The email address of the service account to run the job + as. oneOf: - not: required: @@ -190,8 +202,7 @@ spec: - external properties: external: - description: 'Allowed value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -201,10 +212,15 @@ spec: type: string type: object stagingLocation: - description: The Cloud Storage path to use for staging files. Must - be a valid Cloud Storage URL, beginning with gs://. + description: The Cloud Storage path for staging local files. Must + be a valid Cloud Storage URL, beginning with `gs://`. type: string subnetworkRef: + description: Subnetwork to which VMs will be assigned, if desired. + You can specify a subnetwork using either a complete URL or an abbreviated + path. Expected to be of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" + or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is + located in a Shared VPC network, you must use the complete URL. oneOf: - not: required: @@ -221,34 +237,36 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object tempLocation: description: The Cloud Storage path to use for temporary files. Must - be a valid Cloud Storage URL, beginning with gs://. + be a valid Cloud Storage URL, beginning with `gs://`. type: string transformNameMapping: - description: Only applicable when updating a pipeline. Map of transform - name prefixes of the job to be replaced with the corresponding name - prefixes of the new job. + description: Map of transform name prefixes of the job to be replaced + with the corresponding name prefixes of the new job. Only applicable + when updating a pipeline. type: object x-kubernetes-preserve-unknown-fields: true required: - containerSpecGcsPath type: object status: + description: DataflowFlexTemplateJobStatus defines the config connector + machine state of DataflowFlexTemplateJob properties: conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -280,11 +298,24 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer state: + description: |- + The current state of the job. + + Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise + specified. + + A job in the `JOB_STATE_RUNNING` state may asynchronously enter a + terminal state. After a job has reached a terminal state, no + further state updates may be made. + + This field may be mutated by the Cloud Dataflow service; + callers cannot mutate it. type: string type: - description: The type of this job, selected from the JobType enum. + description: The type of Cloud Dataflow job. type: string type: object required: @@ -298,5 +329,5 @@ status: acceptedNames: kind: "" plural: "" - conditions: [] - storedVersions: [] + conditions: null + storedVersions: null diff --git a/crds/dataflow_v1beta1_dataflowjob.yaml b/crds/dataflow_v1beta1_dataflowjob.yaml index 90ab6d7bd2..13ffcb8059 100644 --- a/crds/dataflow_v1beta1_dataflowjob.yaml +++ b/crds/dataflow_v1beta1_dataflowjob.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dataform_v1alpha1_dataformrepository.yaml b/crds/dataform_v1alpha1_dataformrepository.yaml index 2ad32773b7..96442b47fa 100644 --- a/crds/dataform_v1alpha1_dataformrepository.yaml +++ b/crds/dataform_v1alpha1_dataformrepository.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -72,29 +72,127 @@ spec: type: object spec: properties: + displayName: + description: Optional. The repository's user-friendly name. + type: string gitRemoteSettings: description: Optional. If set, configures this repository to be linked to a Git remote. properties: - authenticationTokenSecretVersion: + authenticationTokenSecretVersionRef: description: The name of the Secret Manager secret version to use as an authentication token for Git operations. Must be in the format projects/* /secrets/* /versions/*. - type: string + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object defaultBranch: description: The Git remote's default branch name. type: string - tokenStatus: - description: Indicates the status of the Git access token. https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories#TokenStatus. - type: string + sshAuthenticationConfig: + description: Authentication fields for remote uris using SSH protocol. + properties: + hostPublicKey: + description: Content of a public SSH key to verify an identity + of a remote Git host. + type: string + userPrivateKeySecretVersionRef: + description: The name of the Secret Manager secret version + to use as a ssh private key for Git operations. Must be + in the format projects/*/secrets/*/versions/* . + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object + required: + - hostPublicKey + - userPrivateKeySecretVersionRef + type: object url: description: The Git remote's URL. type: string required: - - authenticationTokenSecretVersion - defaultBranch - url type: object + npmrcEnvironmentVariablesSecretVersionRef: + description: Optional. The name of the Secret Manager secret version + to be used to interpolate variables into the .npmrc file for package + installation operations. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object projectRef: description: The project that this resource belongs to. oneOf: @@ -135,6 +233,39 @@ spec: creation and acquisition. When unset, the value of `metadata.name` is used as the default. type: string + serviceAccountRef: + description: Optional. The service account reference to run workflow + invocations under. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `email` field of an `IAMServiceAccount` resource. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + setAuthenticatedUserAdmin: + description: Optional. Input only. If set to true, the authenticated + user will be granted the roles/dataform.admin role on the created + repository. + type: boolean workspaceCompilationOverrides: description: Optional. If set, fields of workspaceCompilationOverrides override the default compilation settings that are specified in @@ -185,6 +316,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the DataformReposity resource + in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -193,6 +328,10 @@ spec: the resource. format: int64 type: integer + observedState: + description: ObservedState is the state of the resource as most recently + observed in GCP. + type: object type: object required: - spec diff --git a/crds/datafusion_v1beta1_datafusioninstance.yaml b/crds/datafusion_v1beta1_datafusioninstance.yaml index 1a65087f89..26c59d0df8 100644 --- a/crds/datafusion_v1beta1_datafusioninstance.yaml +++ b/crds/datafusion_v1beta1_datafusioninstance.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/dataproc_v1beta1_dataprocautoscalingpolicy.yaml b/crds/dataproc_v1beta1_dataprocautoscalingpolicy.yaml index 8ec72f441e..e22a1d5bfe 100644 --- a/crds/dataproc_v1beta1_dataprocautoscalingpolicy.yaml +++ b/crds/dataproc_v1beta1_dataprocautoscalingpolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/dataproc_v1beta1_dataproccluster.yaml b/crds/dataproc_v1beta1_dataproccluster.yaml index 6c629f935b..72f04954e7 100644 --- a/crds/dataproc_v1beta1_dataproccluster.yaml +++ b/crds/dataproc_v1beta1_dataproccluster.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/dataproc_v1beta1_dataprocworkflowtemplate.yaml b/crds/dataproc_v1beta1_dataprocworkflowtemplate.yaml index bfb4984d7b..68fd9b3a0d 100644 --- a/crds/dataproc_v1beta1_dataprocworkflowtemplate.yaml +++ b/crds/dataproc_v1beta1_dataprocworkflowtemplate.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/datastore_v1alpha1_datastoreindex.yaml b/crds/datastore_v1alpha1_datastoreindex.yaml index 4b00c6289a..2ac998efc6 100644 --- a/crds/datastore_v1alpha1_datastoreindex.yaml +++ b/crds/datastore_v1alpha1_datastoreindex.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/datastream_v1alpha1_datastreamconnectionprofile.yaml b/crds/datastream_v1alpha1_datastreamconnectionprofile.yaml index c1800154e6..14df57d94d 100644 --- a/crds/datastream_v1alpha1_datastreamconnectionprofile.yaml +++ b/crds/datastream_v1alpha1_datastreamconnectionprofile.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/datastream_v1alpha1_datastreamprivateconnection.yaml b/crds/datastream_v1alpha1_datastreamprivateconnection.yaml index ceb2cea0e5..a8e2190b11 100644 --- a/crds/datastream_v1alpha1_datastreamprivateconnection.yaml +++ b/crds/datastream_v1alpha1_datastreamprivateconnection.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/datastream_v1alpha1_datastreamstream.yaml b/crds/datastream_v1alpha1_datastreamstream.yaml index d44095af27..2118fcf185 100644 --- a/crds/datastream_v1alpha1_datastreamstream.yaml +++ b/crds/datastream_v1alpha1_datastreamstream.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/deploymentmanager_v1alpha1_deploymentmanagerdeployment.yaml b/crds/deploymentmanager_v1alpha1_deploymentmanagerdeployment.yaml index dcc5ebe3e2..8afcb15592 100644 --- a/crds/deploymentmanager_v1alpha1_deploymentmanagerdeployment.yaml +++ b/crds/deploymentmanager_v1alpha1_deploymentmanagerdeployment.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dialogflow_v1alpha1_dialogflowagent.yaml b/crds/dialogflow_v1alpha1_dialogflowagent.yaml index ac6f34a5d3..1fd34e6f2c 100644 --- a/crds/dialogflow_v1alpha1_dialogflowagent.yaml +++ b/crds/dialogflow_v1alpha1_dialogflowagent.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dialogflow_v1alpha1_dialogflowentitytype.yaml b/crds/dialogflow_v1alpha1_dialogflowentitytype.yaml index 452c79896c..e3be333821 100644 --- a/crds/dialogflow_v1alpha1_dialogflowentitytype.yaml +++ b/crds/dialogflow_v1alpha1_dialogflowentitytype.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dialogflow_v1alpha1_dialogflowfulfillment.yaml b/crds/dialogflow_v1alpha1_dialogflowfulfillment.yaml index 144691823c..5f149d1906 100644 --- a/crds/dialogflow_v1alpha1_dialogflowfulfillment.yaml +++ b/crds/dialogflow_v1alpha1_dialogflowfulfillment.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dialogflow_v1alpha1_dialogflowintent.yaml b/crds/dialogflow_v1alpha1_dialogflowintent.yaml index adfdfbe57a..ac25d7829d 100644 --- a/crds/dialogflow_v1alpha1_dialogflowintent.yaml +++ b/crds/dialogflow_v1alpha1_dialogflowintent.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dialogflowcx_v1alpha1_dialogflowcxagent.yaml b/crds/dialogflowcx_v1alpha1_dialogflowcxagent.yaml index 35d54c038b..74d839c280 100644 --- a/crds/dialogflowcx_v1alpha1_dialogflowcxagent.yaml +++ b/crds/dialogflowcx_v1alpha1_dialogflowcxagent.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dialogflowcx_v1alpha1_dialogflowcxentitytype.yaml b/crds/dialogflowcx_v1alpha1_dialogflowcxentitytype.yaml index d16317f991..6cf60d8f33 100644 --- a/crds/dialogflowcx_v1alpha1_dialogflowcxentitytype.yaml +++ b/crds/dialogflowcx_v1alpha1_dialogflowcxentitytype.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dialogflowcx_v1alpha1_dialogflowcxflow.yaml b/crds/dialogflowcx_v1alpha1_dialogflowcxflow.yaml index be8d2188e1..a8d3586182 100644 --- a/crds/dialogflowcx_v1alpha1_dialogflowcxflow.yaml +++ b/crds/dialogflowcx_v1alpha1_dialogflowcxflow.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dialogflowcx_v1alpha1_dialogflowcxintent.yaml b/crds/dialogflowcx_v1alpha1_dialogflowcxintent.yaml index 8f6c8f68d2..111113c89f 100644 --- a/crds/dialogflowcx_v1alpha1_dialogflowcxintent.yaml +++ b/crds/dialogflowcx_v1alpha1_dialogflowcxintent.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dialogflowcx_v1alpha1_dialogflowcxpage.yaml b/crds/dialogflowcx_v1alpha1_dialogflowcxpage.yaml index dd1e3640df..8d19eda604 100644 --- a/crds/dialogflowcx_v1alpha1_dialogflowcxpage.yaml +++ b/crds/dialogflowcx_v1alpha1_dialogflowcxpage.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dialogflowcx_v1alpha1_dialogflowcxwebhook.yaml b/crds/dialogflowcx_v1alpha1_dialogflowcxwebhook.yaml index 4f43c6b5b9..d8fbba948e 100644 --- a/crds/dialogflowcx_v1alpha1_dialogflowcxwebhook.yaml +++ b/crds/dialogflowcx_v1alpha1_dialogflowcxwebhook.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dlp_v1beta1_dlpdeidentifytemplate.yaml b/crds/dlp_v1beta1_dlpdeidentifytemplate.yaml index 6be82f5ae5..c90dfbc434 100644 --- a/crds/dlp_v1beta1_dlpdeidentifytemplate.yaml +++ b/crds/dlp_v1beta1_dlpdeidentifytemplate.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/dlp_v1beta1_dlpinspecttemplate.yaml b/crds/dlp_v1beta1_dlpinspecttemplate.yaml index f30f4713e5..a82a80be96 100644 --- a/crds/dlp_v1beta1_dlpinspecttemplate.yaml +++ b/crds/dlp_v1beta1_dlpinspecttemplate.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/dlp_v1beta1_dlpjobtrigger.yaml b/crds/dlp_v1beta1_dlpjobtrigger.yaml index 3cb0b3ee2f..6dee8ab413 100644 --- a/crds/dlp_v1beta1_dlpjobtrigger.yaml +++ b/crds/dlp_v1beta1_dlpjobtrigger.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/dlp_v1beta1_dlpstoredinfotype.yaml b/crds/dlp_v1beta1_dlpstoredinfotype.yaml index 28d296b790..648ae7d0b3 100644 --- a/crds/dlp_v1beta1_dlpstoredinfotype.yaml +++ b/crds/dlp_v1beta1_dlpstoredinfotype.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/dns_v1alpha1_dnsresponsepolicy.yaml b/crds/dns_v1alpha1_dnsresponsepolicy.yaml index 71472b629c..c7c9f80a98 100644 --- a/crds/dns_v1alpha1_dnsresponsepolicy.yaml +++ b/crds/dns_v1alpha1_dnsresponsepolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dns_v1alpha1_dnsresponsepolicyrule.yaml b/crds/dns_v1alpha1_dnsresponsepolicyrule.yaml index e59230cdcc..15656ac41b 100644 --- a/crds/dns_v1alpha1_dnsresponsepolicyrule.yaml +++ b/crds/dns_v1alpha1_dnsresponsepolicyrule.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dns_v1beta1_dnsmanagedzone.yaml b/crds/dns_v1beta1_dnsmanagedzone.yaml index f0c9fb0c9c..4387e602f8 100644 --- a/crds/dns_v1beta1_dnsmanagedzone.yaml +++ b/crds/dns_v1beta1_dnsmanagedzone.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dns_v1beta1_dnspolicy.yaml b/crds/dns_v1beta1_dnspolicy.yaml index 5bb9debe8a..cd37a130f0 100644 --- a/crds/dns_v1beta1_dnspolicy.yaml +++ b/crds/dns_v1beta1_dnspolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/dns_v1beta1_dnsrecordset.yaml b/crds/dns_v1beta1_dnsrecordset.yaml index f9c10cf7c9..c59c1751ee 100644 --- a/crds/dns_v1beta1_dnsrecordset.yaml +++ b/crds/dns_v1beta1_dnsrecordset.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/documentai_v1alpha1_documentaiprocessor.yaml b/crds/documentai_v1alpha1_documentaiprocessor.yaml index e24cd0b1a1..bb4e7ffe4d 100644 --- a/crds/documentai_v1alpha1_documentaiprocessor.yaml +++ b/crds/documentai_v1alpha1_documentaiprocessor.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/documentai_v1alpha1_documentaiprocessordefaultversion.yaml b/crds/documentai_v1alpha1_documentaiprocessordefaultversion.yaml index 1cdd0be225..daaade78e9 100644 --- a/crds/documentai_v1alpha1_documentaiprocessordefaultversion.yaml +++ b/crds/documentai_v1alpha1_documentaiprocessordefaultversion.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/edgecontainer_v1beta1_edgecontainercluster.yaml b/crds/edgecontainer_v1beta1_edgecontainercluster.yaml index 5c6d302fb1..05ad806a56 100644 --- a/crds/edgecontainer_v1beta1_edgecontainercluster.yaml +++ b/crds/edgecontainer_v1beta1_edgecontainercluster.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/edgecontainer_v1beta1_edgecontainernodepool.yaml b/crds/edgecontainer_v1beta1_edgecontainernodepool.yaml index b40f2fd269..b1f3076e7c 100644 --- a/crds/edgecontainer_v1beta1_edgecontainernodepool.yaml +++ b/crds/edgecontainer_v1beta1_edgecontainernodepool.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/edgecontainer_v1beta1_edgecontainervpnconnection.yaml b/crds/edgecontainer_v1beta1_edgecontainervpnconnection.yaml index 17e0030821..fae5f362e6 100644 --- a/crds/edgecontainer_v1beta1_edgecontainervpnconnection.yaml +++ b/crds/edgecontainer_v1beta1_edgecontainervpnconnection.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/edgenetwork_v1beta1_edgenetworknetwork.yaml b/crds/edgenetwork_v1beta1_edgenetworknetwork.yaml index 420f163f63..0be93adda5 100644 --- a/crds/edgenetwork_v1beta1_edgenetworknetwork.yaml +++ b/crds/edgenetwork_v1beta1_edgenetworknetwork.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/edgenetwork_v1beta1_edgenetworksubnet.yaml b/crds/edgenetwork_v1beta1_edgenetworksubnet.yaml index ae45fb7fbd..322695dd10 100644 --- a/crds/edgenetwork_v1beta1_edgenetworksubnet.yaml +++ b/crds/edgenetwork_v1beta1_edgenetworksubnet.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/essentialcontacts_v1alpha1_essentialcontactscontact.yaml b/crds/essentialcontacts_v1alpha1_essentialcontactscontact.yaml index 11204945ef..16672fc70f 100644 --- a/crds/essentialcontacts_v1alpha1_essentialcontactscontact.yaml +++ b/crds/essentialcontacts_v1alpha1_essentialcontactscontact.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/eventarc_v1beta1_eventarctrigger.yaml b/crds/eventarc_v1beta1_eventarctrigger.yaml index 308e3cb328..34eaf1eda4 100644 --- a/crds/eventarc_v1beta1_eventarctrigger.yaml +++ b/crds/eventarc_v1beta1_eventarctrigger.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/filestore_v1alpha1_filestoresnapshot.yaml b/crds/filestore_v1alpha1_filestoresnapshot.yaml index 3636f2a075..fda33a8b86 100644 --- a/crds/filestore_v1alpha1_filestoresnapshot.yaml +++ b/crds/filestore_v1alpha1_filestoresnapshot.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/filestore_v1beta1_filestorebackup.yaml b/crds/filestore_v1beta1_filestorebackup.yaml index c3853e7418..c99b77fefd 100644 --- a/crds/filestore_v1beta1_filestorebackup.yaml +++ b/crds/filestore_v1beta1_filestorebackup.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/filestore_v1beta1_filestoreinstance.yaml b/crds/filestore_v1beta1_filestoreinstance.yaml index 87dc00f941..fcd3c33688 100644 --- a/crds/filestore_v1beta1_filestoreinstance.yaml +++ b/crds/filestore_v1beta1_filestoreinstance.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/firebase_v1alpha1_firebaseandroidapp.yaml b/crds/firebase_v1alpha1_firebaseandroidapp.yaml index 54429d334d..926721f761 100644 --- a/crds/firebase_v1alpha1_firebaseandroidapp.yaml +++ b/crds/firebase_v1alpha1_firebaseandroidapp.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/firebase_v1alpha1_firebaseproject.yaml b/crds/firebase_v1alpha1_firebaseproject.yaml index f2746ef2b7..78c05c43e1 100644 --- a/crds/firebase_v1alpha1_firebaseproject.yaml +++ b/crds/firebase_v1alpha1_firebaseproject.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/firebase_v1alpha1_firebasewebapp.yaml b/crds/firebase_v1alpha1_firebasewebapp.yaml index d97d8afa30..6931fe9634 100644 --- a/crds/firebase_v1alpha1_firebasewebapp.yaml +++ b/crds/firebase_v1alpha1_firebasewebapp.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/firebasedatabase_v1alpha1_firebasedatabaseinstance.yaml b/crds/firebasedatabase_v1alpha1_firebasedatabaseinstance.yaml index 51253eadb2..4a36062cbd 100644 --- a/crds/firebasedatabase_v1alpha1_firebasedatabaseinstance.yaml +++ b/crds/firebasedatabase_v1alpha1_firebasedatabaseinstance.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/firebasehosting_v1alpha1_firebasehostingchannel.yaml b/crds/firebasehosting_v1alpha1_firebasehostingchannel.yaml index b358d979d2..7bbbb8e9a3 100644 --- a/crds/firebasehosting_v1alpha1_firebasehostingchannel.yaml +++ b/crds/firebasehosting_v1alpha1_firebasehostingchannel.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/firebasehosting_v1alpha1_firebasehostingsite.yaml b/crds/firebasehosting_v1alpha1_firebasehostingsite.yaml index 9d071fdefa..9a066c1333 100644 --- a/crds/firebasehosting_v1alpha1_firebasehostingsite.yaml +++ b/crds/firebasehosting_v1alpha1_firebasehostingsite.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/firebasestorage_v1alpha1_firebasestoragebucket.yaml b/crds/firebasestorage_v1alpha1_firebasestoragebucket.yaml index 9e0c7172e1..60db6e1cad 100644 --- a/crds/firebasestorage_v1alpha1_firebasestoragebucket.yaml +++ b/crds/firebasestorage_v1alpha1_firebasestoragebucket.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/firestore_v1beta1_firestoreindex.yaml b/crds/firestore_v1beta1_firestoreindex.yaml index 215c04c201..a8287dbf92 100644 --- a/crds/firestore_v1beta1_firestoreindex.yaml +++ b/crds/firestore_v1beta1_firestoreindex.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/gkebackup_v1alpha1_gkebackupbackupplan.yaml b/crds/gkebackup_v1alpha1_gkebackupbackupplan.yaml index be242d088e..fe0e3505ca 100644 --- a/crds/gkebackup_v1alpha1_gkebackupbackupplan.yaml +++ b/crds/gkebackup_v1alpha1_gkebackupbackupplan.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/gkehub_v1beta1_gkehubfeature.yaml b/crds/gkehub_v1beta1_gkehubfeature.yaml index 51d56f9d58..e5ba2cb063 100644 --- a/crds/gkehub_v1beta1_gkehubfeature.yaml +++ b/crds/gkehub_v1beta1_gkehubfeature.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/gkehub_v1beta1_gkehubfeaturemembership.yaml b/crds/gkehub_v1beta1_gkehubfeaturemembership.yaml index 1266e1c3ca..79dfbdf126 100644 --- a/crds/gkehub_v1beta1_gkehubfeaturemembership.yaml +++ b/crds/gkehub_v1beta1_gkehubfeaturemembership.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -106,10 +106,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -203,10 +201,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -246,7 +242,9 @@ spec: type: string type: object hierarchyController: - description: Hierarchy Controller configuration for the cluster. + description: 'Hierarchy Controller is no longer available. + Use https://github.com/kubernetes-sigs/hierarchical-namespaces + instead.' properties: enableHierarchicalResourceQuota: description: Whether hierarchical resource quota is enabled diff --git a/crds/gkehub_v1beta1_gkehubmembership.yaml b/crds/gkehub_v1beta1_gkehubmembership.yaml index 698c337510..90864dba32 100644 --- a/crds/gkehub_v1beta1_gkehubmembership.yaml +++ b/crds/gkehub_v1beta1_gkehubmembership.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/healthcare_v1alpha1_healthcareconsentstore.yaml b/crds/healthcare_v1alpha1_healthcareconsentstore.yaml index 26347621c4..da1047439d 100644 --- a/crds/healthcare_v1alpha1_healthcareconsentstore.yaml +++ b/crds/healthcare_v1alpha1_healthcareconsentstore.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/healthcare_v1alpha1_healthcaredataset.yaml b/crds/healthcare_v1alpha1_healthcaredataset.yaml index e63c91d18d..cca451374b 100644 --- a/crds/healthcare_v1alpha1_healthcaredataset.yaml +++ b/crds/healthcare_v1alpha1_healthcaredataset.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/healthcare_v1alpha1_healthcaredicomstore.yaml b/crds/healthcare_v1alpha1_healthcaredicomstore.yaml index 409d35bd93..1952e6286f 100644 --- a/crds/healthcare_v1alpha1_healthcaredicomstore.yaml +++ b/crds/healthcare_v1alpha1_healthcaredicomstore.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/healthcare_v1alpha1_healthcarefhirstore.yaml b/crds/healthcare_v1alpha1_healthcarefhirstore.yaml index 1952fa251c..33c9d9caea 100644 --- a/crds/healthcare_v1alpha1_healthcarefhirstore.yaml +++ b/crds/healthcare_v1alpha1_healthcarefhirstore.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/healthcare_v1alpha1_healthcarehl7v2store.yaml b/crds/healthcare_v1alpha1_healthcarehl7v2store.yaml index 7c45115a2d..730da639cc 100644 --- a/crds/healthcare_v1alpha1_healthcarehl7v2store.yaml +++ b/crds/healthcare_v1alpha1_healthcarehl7v2store.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/iam_v1beta1_iamaccessboundarypolicy.yaml b/crds/iam_v1beta1_iamaccessboundarypolicy.yaml index 7d4ca84b1e..1a630e5d48 100644 --- a/crds/iam_v1beta1_iamaccessboundarypolicy.yaml +++ b/crds/iam_v1beta1_iamaccessboundarypolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/iam_v1beta1_iamauditconfig.yaml b/crds/iam_v1beta1_iamauditconfig.yaml index 847c66c7ea..0124b8e90e 100644 --- a/crds/iam_v1beta1_iamauditconfig.yaml +++ b/crds/iam_v1beta1_iamauditconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/iam_v1beta1_iamcustomrole.yaml b/crds/iam_v1beta1_iamcustomrole.yaml index 391b81d469..585849c469 100644 --- a/crds/iam_v1beta1_iamcustomrole.yaml +++ b/crds/iam_v1beta1_iamcustomrole.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/iam_v1beta1_iampartialpolicy.yaml b/crds/iam_v1beta1_iampartialpolicy.yaml index 11783be736..f512ad7431 100644 --- a/crds/iam_v1beta1_iampartialpolicy.yaml +++ b/crds/iam_v1beta1_iampartialpolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/iam_v1beta1_iampolicy.yaml b/crds/iam_v1beta1_iampolicy.yaml index fd43235826..2f99e044e1 100644 --- a/crds/iam_v1beta1_iampolicy.yaml +++ b/crds/iam_v1beta1_iampolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/iam_v1beta1_iampolicymember.yaml b/crds/iam_v1beta1_iampolicymember.yaml index 4cdbc79dbb..aba59c7531 100644 --- a/crds/iam_v1beta1_iampolicymember.yaml +++ b/crds/iam_v1beta1_iampolicymember.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/iam_v1beta1_iamserviceaccount.yaml b/crds/iam_v1beta1_iamserviceaccount.yaml index 0bc88ad8ac..8983ae968f 100644 --- a/crds/iam_v1beta1_iamserviceaccount.yaml +++ b/crds/iam_v1beta1_iamserviceaccount.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/iam_v1beta1_iamserviceaccountkey.yaml b/crds/iam_v1beta1_iamserviceaccountkey.yaml index c871b684cd..d46e74f0f3 100644 --- a/crds/iam_v1beta1_iamserviceaccountkey.yaml +++ b/crds/iam_v1beta1_iamserviceaccountkey.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/iam_v1beta1_iamworkforcepool.yaml b/crds/iam_v1beta1_iamworkforcepool.yaml index 8d33d741b6..56dcbca1ef 100644 --- a/crds/iam_v1beta1_iamworkforcepool.yaml +++ b/crds/iam_v1beta1_iamworkforcepool.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/iam_v1beta1_iamworkforcepoolprovider.yaml b/crds/iam_v1beta1_iamworkforcepoolprovider.yaml index a84099387d..635c00af90 100644 --- a/crds/iam_v1beta1_iamworkforcepoolprovider.yaml +++ b/crds/iam_v1beta1_iamworkforcepoolprovider.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/iam_v1beta1_iamworkloadidentitypool.yaml b/crds/iam_v1beta1_iamworkloadidentitypool.yaml index 0f2782f6bb..d30705c1fc 100644 --- a/crds/iam_v1beta1_iamworkloadidentitypool.yaml +++ b/crds/iam_v1beta1_iamworkloadidentitypool.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/iam_v1beta1_iamworkloadidentitypoolprovider.yaml b/crds/iam_v1beta1_iamworkloadidentitypoolprovider.yaml index 6c704c9e93..58395bc94a 100644 --- a/crds/iam_v1beta1_iamworkloadidentitypoolprovider.yaml +++ b/crds/iam_v1beta1_iamworkloadidentitypoolprovider.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/iap_v1beta1_iapbrand.yaml b/crds/iap_v1beta1_iapbrand.yaml index 5b29fe5db2..35497acdec 100644 --- a/crds/iap_v1beta1_iapbrand.yaml +++ b/crds/iap_v1beta1_iapbrand.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/iap_v1beta1_iapidentityawareproxyclient.yaml b/crds/iap_v1beta1_iapidentityawareproxyclient.yaml index 738c854950..0cf8c817df 100644 --- a/crds/iap_v1beta1_iapidentityawareproxyclient.yaml +++ b/crds/iap_v1beta1_iapidentityawareproxyclient.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/identityplatform_v1alpha1_identityplatformdefaultsupportedidpconfig.yaml b/crds/identityplatform_v1alpha1_identityplatformdefaultsupportedidpconfig.yaml index 3043b7e29f..1fffa72048 100644 --- a/crds/identityplatform_v1alpha1_identityplatformdefaultsupportedidpconfig.yaml +++ b/crds/identityplatform_v1alpha1_identityplatformdefaultsupportedidpconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/identityplatform_v1alpha1_identityplatforminboundsamlconfig.yaml b/crds/identityplatform_v1alpha1_identityplatforminboundsamlconfig.yaml index 70dbb883a9..0c3e03868a 100644 --- a/crds/identityplatform_v1alpha1_identityplatforminboundsamlconfig.yaml +++ b/crds/identityplatform_v1alpha1_identityplatforminboundsamlconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/identityplatform_v1alpha1_identityplatformprojectdefaultconfig.yaml b/crds/identityplatform_v1alpha1_identityplatformprojectdefaultconfig.yaml index d5f36c7118..982cf20501 100644 --- a/crds/identityplatform_v1alpha1_identityplatformprojectdefaultconfig.yaml +++ b/crds/identityplatform_v1alpha1_identityplatformprojectdefaultconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/identityplatform_v1alpha1_identityplatformtenantdefaultsupportedidpconfig.yaml b/crds/identityplatform_v1alpha1_identityplatformtenantdefaultsupportedidpconfig.yaml index 5c4ab85b5c..e020e3c5aa 100644 --- a/crds/identityplatform_v1alpha1_identityplatformtenantdefaultsupportedidpconfig.yaml +++ b/crds/identityplatform_v1alpha1_identityplatformtenantdefaultsupportedidpconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/identityplatform_v1alpha1_identityplatformtenantinboundsamlconfig.yaml b/crds/identityplatform_v1alpha1_identityplatformtenantinboundsamlconfig.yaml index 174b9310de..55e50c7551 100644 --- a/crds/identityplatform_v1alpha1_identityplatformtenantinboundsamlconfig.yaml +++ b/crds/identityplatform_v1alpha1_identityplatformtenantinboundsamlconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/identityplatform_v1beta1_identityplatformconfig.yaml b/crds/identityplatform_v1beta1_identityplatformconfig.yaml index ec448a9bc0..2fd17a9453 100644 --- a/crds/identityplatform_v1beta1_identityplatformconfig.yaml +++ b/crds/identityplatform_v1beta1_identityplatformconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/identityplatform_v1beta1_identityplatformoauthidpconfig.yaml b/crds/identityplatform_v1beta1_identityplatformoauthidpconfig.yaml index aa64c8cf07..54c742a3fe 100644 --- a/crds/identityplatform_v1beta1_identityplatformoauthidpconfig.yaml +++ b/crds/identityplatform_v1beta1_identityplatformoauthidpconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/identityplatform_v1beta1_identityplatformtenant.yaml b/crds/identityplatform_v1beta1_identityplatformtenant.yaml index 6394ecf14d..a9a95d94d2 100644 --- a/crds/identityplatform_v1beta1_identityplatformtenant.yaml +++ b/crds/identityplatform_v1beta1_identityplatformtenant.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/identityplatform_v1beta1_identityplatformtenantoauthidpconfig.yaml b/crds/identityplatform_v1beta1_identityplatformtenantoauthidpconfig.yaml index 5059b424e9..605ad863da 100644 --- a/crds/identityplatform_v1beta1_identityplatformtenantoauthidpconfig.yaml +++ b/crds/identityplatform_v1beta1_identityplatformtenantoauthidpconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/kms_v1alpha1_kmscryptokeyversion.yaml b/crds/kms_v1alpha1_kmscryptokeyversion.yaml index cb66cf5e68..4677c22aa1 100644 --- a/crds/kms_v1alpha1_kmscryptokeyversion.yaml +++ b/crds/kms_v1alpha1_kmscryptokeyversion.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/kms_v1alpha1_kmskeyringimportjob.yaml b/crds/kms_v1alpha1_kmskeyringimportjob.yaml index 0b2371cbc0..9339e36a90 100644 --- a/crds/kms_v1alpha1_kmskeyringimportjob.yaml +++ b/crds/kms_v1alpha1_kmskeyringimportjob.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/kms_v1alpha1_kmssecretciphertext.yaml b/crds/kms_v1alpha1_kmssecretciphertext.yaml index 2f634ae068..f9432be2a8 100644 --- a/crds/kms_v1alpha1_kmssecretciphertext.yaml +++ b/crds/kms_v1alpha1_kmssecretciphertext.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/kms_v1beta1_kmscryptokey.yaml b/crds/kms_v1beta1_kmscryptokey.yaml index 530ee9bc0e..71f2fef487 100644 --- a/crds/kms_v1beta1_kmscryptokey.yaml +++ b/crds/kms_v1beta1_kmscryptokey.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/kms_v1beta1_kmskeyring.yaml b/crds/kms_v1beta1_kmskeyring.yaml index 1c7e70dfb6..c5ee6b541a 100644 --- a/crds/kms_v1beta1_kmskeyring.yaml +++ b/crds/kms_v1beta1_kmskeyring.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/logging_v1beta1_logginglogbucket.yaml b/crds/logging_v1beta1_logginglogbucket.yaml index 13cd6cd7f7..9b2011f655 100644 --- a/crds/logging_v1beta1_logginglogbucket.yaml +++ b/crds/logging_v1beta1_logginglogbucket.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/logging_v1beta1_logginglogexclusion.yaml b/crds/logging_v1beta1_logginglogexclusion.yaml index 630e4409d5..7ed62e29b3 100644 --- a/crds/logging_v1beta1_logginglogexclusion.yaml +++ b/crds/logging_v1beta1_logginglogexclusion.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/logging_v1beta1_logginglogmetric.yaml b/crds/logging_v1beta1_logginglogmetric.yaml index ce7d52b6fb..74be55176a 100644 --- a/crds/logging_v1beta1_logginglogmetric.yaml +++ b/crds/logging_v1beta1_logginglogmetric.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/logging_v1beta1_logginglogsink.yaml b/crds/logging_v1beta1_logginglogsink.yaml index 78b1967cd2..9597abeaa4 100644 --- a/crds/logging_v1beta1_logginglogsink.yaml +++ b/crds/logging_v1beta1_logginglogsink.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/logging_v1beta1_logginglogview.yaml b/crds/logging_v1beta1_logginglogview.yaml index 126fa0a7f6..92db7cb689 100644 --- a/crds/logging_v1beta1_logginglogview.yaml +++ b/crds/logging_v1beta1_logginglogview.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/memcache_v1beta1_memcacheinstance.yaml b/crds/memcache_v1beta1_memcacheinstance.yaml index bb1da7e34b..febe27c2b9 100644 --- a/crds/memcache_v1beta1_memcacheinstance.yaml +++ b/crds/memcache_v1beta1_memcacheinstance.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/mlengine_v1alpha1_mlenginemodel.yaml b/crds/mlengine_v1alpha1_mlenginemodel.yaml index d0bb3c7dc9..1dfefe9cd1 100644 --- a/crds/mlengine_v1alpha1_mlenginemodel.yaml +++ b/crds/mlengine_v1alpha1_mlenginemodel.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/monitoring_v1beta1_monitoringalertpolicy.yaml b/crds/monitoring_v1beta1_monitoringalertpolicy.yaml index e2f243d3a8..28d899d806 100644 --- a/crds/monitoring_v1beta1_monitoringalertpolicy.yaml +++ b/crds/monitoring_v1beta1_monitoringalertpolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/monitoring_v1beta1_monitoringdashboard.yaml b/crds/monitoring_v1beta1_monitoringdashboard.yaml index f7318cf5c5..3c058766fd 100644 --- a/crds/monitoring_v1beta1_monitoringdashboard.yaml +++ b/crds/monitoring_v1beta1_monitoringdashboard.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/monitoring_v1beta1_monitoringgroup.yaml b/crds/monitoring_v1beta1_monitoringgroup.yaml index f8b64b92e8..8a936e6284 100644 --- a/crds/monitoring_v1beta1_monitoringgroup.yaml +++ b/crds/monitoring_v1beta1_monitoringgroup.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/monitoring_v1beta1_monitoringmetricdescriptor.yaml b/crds/monitoring_v1beta1_monitoringmetricdescriptor.yaml index a0122c3a07..e5ea4e5196 100644 --- a/crds/monitoring_v1beta1_monitoringmetricdescriptor.yaml +++ b/crds/monitoring_v1beta1_monitoringmetricdescriptor.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/monitoring_v1beta1_monitoringmonitoredproject.yaml b/crds/monitoring_v1beta1_monitoringmonitoredproject.yaml index 704d3a2ddd..4ec2f88e16 100644 --- a/crds/monitoring_v1beta1_monitoringmonitoredproject.yaml +++ b/crds/monitoring_v1beta1_monitoringmonitoredproject.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/monitoring_v1beta1_monitoringnotificationchannel.yaml b/crds/monitoring_v1beta1_monitoringnotificationchannel.yaml index 96e74a291d..1c7dc12c2b 100644 --- a/crds/monitoring_v1beta1_monitoringnotificationchannel.yaml +++ b/crds/monitoring_v1beta1_monitoringnotificationchannel.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/monitoring_v1beta1_monitoringservice.yaml b/crds/monitoring_v1beta1_monitoringservice.yaml index 003c0da7da..7bf4e4e8b1 100644 --- a/crds/monitoring_v1beta1_monitoringservice.yaml +++ b/crds/monitoring_v1beta1_monitoringservice.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/monitoring_v1beta1_monitoringservicelevelobjective.yaml b/crds/monitoring_v1beta1_monitoringservicelevelobjective.yaml index 1b82f0a0f1..9a79eaad48 100644 --- a/crds/monitoring_v1beta1_monitoringservicelevelobjective.yaml +++ b/crds/monitoring_v1beta1_monitoringservicelevelobjective.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/monitoring_v1beta1_monitoringuptimecheckconfig.yaml b/crds/monitoring_v1beta1_monitoringuptimecheckconfig.yaml index 9f330273fa..f47aa5c51a 100644 --- a/crds/monitoring_v1beta1_monitoringuptimecheckconfig.yaml +++ b/crds/monitoring_v1beta1_monitoringuptimecheckconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/networkconnectivity_v1alpha1_networkconnectivityserviceconnectionpolicy.yaml b/crds/networkconnectivity_v1alpha1_networkconnectivityserviceconnectionpolicy.yaml index b6974304e2..260d8e2f92 100644 --- a/crds/networkconnectivity_v1alpha1_networkconnectivityserviceconnectionpolicy.yaml +++ b/crds/networkconnectivity_v1alpha1_networkconnectivityserviceconnectionpolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -69,6 +69,9 @@ spec: description: description: A description of this resource. type: string + location: + description: Immutable. Location of the resource. + type: string networkRef: description: 'The resource path of the consumer network. Example: - projects/{projectNumOrId}/global/networks/{resourceId}.' @@ -89,7 +92,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -98,6 +101,38 @@ spec: description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object pscConfig: description: Configuration used for Private Service Connect connections. Used when Infrastructure is PSC. @@ -156,6 +191,9 @@ spec: services have a prefix of gcp. For example, gcp-cloud-sql. 3rd party services do not. For example, test-service-a3dfcx. type: string + required: + - location + - projectRef type: object status: description: NetworkConnectivityServiceConnectionPolicyStatus defines diff --git a/crds/networkconnectivity_v1beta1_networkconnectivityhub.yaml b/crds/networkconnectivity_v1beta1_networkconnectivityhub.yaml index 6e8906c7c1..a6b65c9fd6 100644 --- a/crds/networkconnectivity_v1beta1_networkconnectivityhub.yaml +++ b/crds/networkconnectivity_v1beta1_networkconnectivityhub.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/networkconnectivity_v1beta1_networkconnectivityspoke.yaml b/crds/networkconnectivity_v1beta1_networkconnectivityspoke.yaml index 284ef7fd34..144ef1e25f 100644 --- a/crds/networkconnectivity_v1beta1_networkconnectivityspoke.yaml +++ b/crds/networkconnectivity_v1beta1_networkconnectivityspoke.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/networkmanagement_v1alpha1_networkmanagementconnectivitytest.yaml b/crds/networkmanagement_v1alpha1_networkmanagementconnectivitytest.yaml index 50345e15fd..e84e79c196 100644 --- a/crds/networkmanagement_v1alpha1_networkmanagementconnectivitytest.yaml +++ b/crds/networkmanagement_v1alpha1_networkmanagementconnectivitytest.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/networksecurity_v1beta1_networksecurityauthorizationpolicy.yaml b/crds/networksecurity_v1beta1_networksecurityauthorizationpolicy.yaml index 59b2bc4cdc..b66e3fe647 100644 --- a/crds/networksecurity_v1beta1_networksecurityauthorizationpolicy.yaml +++ b/crds/networksecurity_v1beta1_networksecurityauthorizationpolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/networksecurity_v1beta1_networksecurityclienttlspolicy.yaml b/crds/networksecurity_v1beta1_networksecurityclienttlspolicy.yaml index edd2444625..a041acc851 100644 --- a/crds/networksecurity_v1beta1_networksecurityclienttlspolicy.yaml +++ b/crds/networksecurity_v1beta1_networksecurityclienttlspolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/networksecurity_v1beta1_networksecurityservertlspolicy.yaml b/crds/networksecurity_v1beta1_networksecurityservertlspolicy.yaml index 7e016976d5..18e640898d 100644 --- a/crds/networksecurity_v1beta1_networksecurityservertlspolicy.yaml +++ b/crds/networksecurity_v1beta1_networksecurityservertlspolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/networkservices_v1alpha1_networkservicesedgecachekeyset.yaml b/crds/networkservices_v1alpha1_networkservicesedgecachekeyset.yaml index 11d3a2c50f..39d7e3f9f4 100644 --- a/crds/networkservices_v1alpha1_networkservicesedgecachekeyset.yaml +++ b/crds/networkservices_v1alpha1_networkservicesedgecachekeyset.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/networkservices_v1alpha1_networkservicesedgecacheorigin.yaml b/crds/networkservices_v1alpha1_networkservicesedgecacheorigin.yaml index dd87e3ff43..5970ce8a73 100644 --- a/crds/networkservices_v1alpha1_networkservicesedgecacheorigin.yaml +++ b/crds/networkservices_v1alpha1_networkservicesedgecacheorigin.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/networkservices_v1alpha1_networkservicesedgecacheservice.yaml b/crds/networkservices_v1alpha1_networkservicesedgecacheservice.yaml index 22198fd799..f3e072c36a 100644 --- a/crds/networkservices_v1alpha1_networkservicesedgecacheservice.yaml +++ b/crds/networkservices_v1alpha1_networkservicesedgecacheservice.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/networkservices_v1beta1_networkservicesendpointpolicy.yaml b/crds/networkservices_v1beta1_networkservicesendpointpolicy.yaml index ce4218f167..ea92177b3e 100644 --- a/crds/networkservices_v1beta1_networkservicesendpointpolicy.yaml +++ b/crds/networkservices_v1beta1_networkservicesendpointpolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/networkservices_v1beta1_networkservicesgateway.yaml b/crds/networkservices_v1beta1_networkservicesgateway.yaml index 73ad546e59..7cdbf59a17 100644 --- a/crds/networkservices_v1beta1_networkservicesgateway.yaml +++ b/crds/networkservices_v1beta1_networkservicesgateway.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/networkservices_v1beta1_networkservicesgrpcroute.yaml b/crds/networkservices_v1beta1_networkservicesgrpcroute.yaml index 99b6d888d4..0dc21f691a 100644 --- a/crds/networkservices_v1beta1_networkservicesgrpcroute.yaml +++ b/crds/networkservices_v1beta1_networkservicesgrpcroute.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/networkservices_v1beta1_networkserviceshttproute.yaml b/crds/networkservices_v1beta1_networkserviceshttproute.yaml index ab88f4f721..f46e5006bc 100644 --- a/crds/networkservices_v1beta1_networkserviceshttproute.yaml +++ b/crds/networkservices_v1beta1_networkserviceshttproute.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/networkservices_v1beta1_networkservicesmesh.yaml b/crds/networkservices_v1beta1_networkservicesmesh.yaml index cb1fc7fa34..af6f3458d3 100644 --- a/crds/networkservices_v1beta1_networkservicesmesh.yaml +++ b/crds/networkservices_v1beta1_networkservicesmesh.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/networkservices_v1beta1_networkservicestcproute.yaml b/crds/networkservices_v1beta1_networkservicestcproute.yaml index 3b46f20c66..1560039329 100644 --- a/crds/networkservices_v1beta1_networkservicestcproute.yaml +++ b/crds/networkservices_v1beta1_networkservicestcproute.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/networkservices_v1beta1_networkservicestlsroute.yaml b/crds/networkservices_v1beta1_networkservicestlsroute.yaml index befb706f66..373bac0294 100644 --- a/crds/networkservices_v1beta1_networkservicestlsroute.yaml +++ b/crds/networkservices_v1beta1_networkservicestlsroute.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/notebooks_v1alpha1_notebooksenvironment.yaml b/crds/notebooks_v1alpha1_notebooksenvironment.yaml index 19a0778fc5..4815b820ee 100644 --- a/crds/notebooks_v1alpha1_notebooksenvironment.yaml +++ b/crds/notebooks_v1alpha1_notebooksenvironment.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/orgpolicy_v1alpha1_orgpolicycustomconstraint.yaml b/crds/orgpolicy_v1alpha1_orgpolicycustomconstraint.yaml index 22b6064011..9c0a14cd72 100644 --- a/crds/orgpolicy_v1alpha1_orgpolicycustomconstraint.yaml +++ b/crds/orgpolicy_v1alpha1_orgpolicycustomconstraint.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/osconfig_v1alpha1_osconfigpatchdeployment.yaml b/crds/osconfig_v1alpha1_osconfigpatchdeployment.yaml index 2a1478a216..4ee9b949ff 100644 --- a/crds/osconfig_v1alpha1_osconfigpatchdeployment.yaml +++ b/crds/osconfig_v1alpha1_osconfigpatchdeployment.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/osconfig_v1beta1_osconfigguestpolicy.yaml b/crds/osconfig_v1beta1_osconfigguestpolicy.yaml index 405949725a..63cf18496b 100644 --- a/crds/osconfig_v1beta1_osconfigguestpolicy.yaml +++ b/crds/osconfig_v1beta1_osconfigguestpolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/osconfig_v1beta1_osconfigospolicyassignment.yaml b/crds/osconfig_v1beta1_osconfigospolicyassignment.yaml index a3e8972652..7526680594 100644 --- a/crds/osconfig_v1beta1_osconfigospolicyassignment.yaml +++ b/crds/osconfig_v1beta1_osconfigospolicyassignment.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/oslogin_v1alpha1_osloginsshpublickey.yaml b/crds/oslogin_v1alpha1_osloginsshpublickey.yaml index 9d89044682..03d92976c0 100644 --- a/crds/oslogin_v1alpha1_osloginsshpublickey.yaml +++ b/crds/oslogin_v1alpha1_osloginsshpublickey.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/privateca_v1beta1_privatecacapool.yaml b/crds/privateca_v1beta1_privatecacapool.yaml index 1c8f248ccc..6e0ba96ebf 100644 --- a/crds/privateca_v1beta1_privatecacapool.yaml +++ b/crds/privateca_v1beta1_privatecacapool.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/privateca_v1beta1_privatecacertificate.yaml b/crds/privateca_v1beta1_privatecacertificate.yaml index 767f9fd4b3..af9ba5d929 100644 --- a/crds/privateca_v1beta1_privatecacertificate.yaml +++ b/crds/privateca_v1beta1_privatecacertificate.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/privateca_v1beta1_privatecacertificateauthority.yaml b/crds/privateca_v1beta1_privatecacertificateauthority.yaml index 4c84360973..8c236cbdc0 100644 --- a/crds/privateca_v1beta1_privatecacertificateauthority.yaml +++ b/crds/privateca_v1beta1_privatecacertificateauthority.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/privateca_v1beta1_privatecacertificatetemplate.yaml b/crds/privateca_v1beta1_privatecacertificatetemplate.yaml index 52b27f0371..8edbbdc542 100644 --- a/crds/privateca_v1beta1_privatecacertificatetemplate.yaml +++ b/crds/privateca_v1beta1_privatecacertificatetemplate.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/pubsub_v1beta1_pubsubschema.yaml b/crds/pubsub_v1beta1_pubsubschema.yaml index 021836ca73..7ec9ba500c 100644 --- a/crds/pubsub_v1beta1_pubsubschema.yaml +++ b/crds/pubsub_v1beta1_pubsubschema.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/pubsub_v1beta1_pubsubsubscription.yaml b/crds/pubsub_v1beta1_pubsubsubscription.yaml index 5d91633706..df0e476d4a 100644 --- a/crds/pubsub_v1beta1_pubsubsubscription.yaml +++ b/crds/pubsub_v1beta1_pubsubsubscription.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/pubsub_v1beta1_pubsubtopic.yaml b/crds/pubsub_v1beta1_pubsubtopic.yaml index 76a3016a16..a742c4b116 100644 --- a/crds/pubsub_v1beta1_pubsubtopic.yaml +++ b/crds/pubsub_v1beta1_pubsubtopic.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/pubsublite_v1alpha1_pubsublitesubscription.yaml b/crds/pubsublite_v1alpha1_pubsublitesubscription.yaml index 97b271af40..08915270f6 100644 --- a/crds/pubsublite_v1alpha1_pubsublitesubscription.yaml +++ b/crds/pubsublite_v1alpha1_pubsublitesubscription.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/pubsublite_v1alpha1_pubsublitetopic.yaml b/crds/pubsublite_v1alpha1_pubsublitetopic.yaml index 9f37d1c080..676d6a2cbb 100644 --- a/crds/pubsublite_v1alpha1_pubsublitetopic.yaml +++ b/crds/pubsublite_v1alpha1_pubsublitetopic.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/pubsublite_v1beta1_pubsublitereservation.yaml b/crds/pubsublite_v1beta1_pubsublitereservation.yaml index 68b9b859f0..0d0a4cb61b 100644 --- a/crds/pubsublite_v1beta1_pubsublitereservation.yaml +++ b/crds/pubsublite_v1beta1_pubsublitereservation.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/recaptchaenterprise_v1beta1_recaptchaenterprisekey.yaml b/crds/recaptchaenterprise_v1beta1_recaptchaenterprisekey.yaml index 5c7c36bd90..5f2b6e9bcf 100644 --- a/crds/recaptchaenterprise_v1beta1_recaptchaenterprisekey.yaml +++ b/crds/recaptchaenterprise_v1beta1_recaptchaenterprisekey.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" diff --git a/crds/redis_v1alpha1_rediscluster.yaml b/crds/redis_v1alpha1_rediscluster.yaml index 9565f438e4..aebe56fcb8 100644 --- a/crds/redis_v1alpha1_rediscluster.yaml +++ b/crds/redis_v1alpha1_rediscluster.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77,6 +77,9 @@ spec: description: Optional. The delete operation will fail when the value is set to true. type: boolean + location: + description: Immutable. Location of the resource. + type: string nodeType: description: Optional. The type of a redis node in the cluster. NodeType determines the underlying machine-type of a redis node. @@ -109,6 +112,38 @@ spec: type: string type: object type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object pscConfigs: description: Required. Each PscConfig configures the consumer network where IPs will be designated to the cluster for client access through @@ -136,7 +171,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -146,6 +181,8 @@ spec: resource. type: string type: object + required: + - networkRef type: object type: array redisConfigs: @@ -185,6 +222,9 @@ spec: MULTI_ZONE clusters. type: string type: object + required: + - location + - projectRef type: object status: description: RedisClusterStatus defines the config connector machine state @@ -255,39 +295,11 @@ spec: description: Output only. Customer configuration for where the endpoint is created and accessed from. properties: - networkRef: + network: description: Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: The compute network selflink of form - "projects//global/networks/", - when not managed by KCC. - type: string - name: - description: The `name` field of a `ComputeNetwork` - resource. - type: string - namespace: - description: The `namespace` field of a `ComputeNetwork` - resource. - type: string - type: object + type: string type: object type: object type: array diff --git a/crds/redis_v1beta1_redisinstance.yaml b/crds/redis_v1beta1_redisinstance.yaml index a0aacc548e..a385239ede 100644 --- a/crds/redis_v1beta1_redisinstance.yaml +++ b/crds/redis_v1beta1_redisinstance.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/resourcemanager_v1beta1_folder.yaml b/crds/resourcemanager_v1beta1_folder.yaml index d4b2f0ae05..adceff8719 100644 --- a/crds/resourcemanager_v1beta1_folder.yaml +++ b/crds/resourcemanager_v1beta1_folder.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/resourcemanager_v1beta1_project.yaml b/crds/resourcemanager_v1beta1_project.yaml index e5513eb925..aa58cefde2 100644 --- a/crds/resourcemanager_v1beta1_project.yaml +++ b/crds/resourcemanager_v1beta1_project.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/resourcemanager_v1beta1_resourcemanagerlien.yaml b/crds/resourcemanager_v1beta1_resourcemanagerlien.yaml index 662522a859..bfa479690a 100644 --- a/crds/resourcemanager_v1beta1_resourcemanagerlien.yaml +++ b/crds/resourcemanager_v1beta1_resourcemanagerlien.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/resourcemanager_v1beta1_resourcemanagerpolicy.yaml b/crds/resourcemanager_v1beta1_resourcemanagerpolicy.yaml index 2087fe99da..393c28e855 100644 --- a/crds/resourcemanager_v1beta1_resourcemanagerpolicy.yaml +++ b/crds/resourcemanager_v1beta1_resourcemanagerpolicy.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/run_v1beta1_runjob.yaml b/crds/run_v1beta1_runjob.yaml index 3336ec08af..da3ed74092 100644 --- a/crds/run_v1beta1_runjob.yaml +++ b/crds/run_v1beta1_runjob.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -605,16 +605,16 @@ spec: cloudSqlInstance: description: For Cloud SQL volumes, contains the specific instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run - for more information on how to connect Cloud SQL and Cloud - Run. + for more information on how to connect Cloud SQL and + Cloud Run. properties: instanceRefs: items: - description: 'The Cloud SQL instance connection names, - as can be found in https://console.cloud.google.com/sql/instances. + description: 'The Cloud SQL instance connection + names, as can be found in https://console.cloud.google.com/sql/instances. Visit https://cloud.google.com/sql/docs/mysql/connect-run - for more information on how to connect Cloud SQL - and Cloud Run. Format: {project}:{location}:{instance}' + for more information on how to connect Cloud + SQL and Cloud Run. Format: {project}:{location}:{instance}' oneOf: - not: required: diff --git a/crds/run_v1beta1_runservice.yaml b/crds/run_v1beta1_runservice.yaml index bee24d313a..eb6f12b667 100644 --- a/crds/run_v1beta1_runservice.yaml +++ b/crds/run_v1beta1_runservice.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/secretmanager_v1beta1_secretmanagersecret.yaml b/crds/secretmanager_v1beta1_secretmanagersecret.yaml index b3bb1ec406..047217e287 100644 --- a/crds/secretmanager_v1beta1_secretmanagersecret.yaml +++ b/crds/secretmanager_v1beta1_secretmanagersecret.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/secretmanager_v1beta1_secretmanagersecretversion.yaml b/crds/secretmanager_v1beta1_secretmanagersecretversion.yaml index d933ad6a5e..08ac617800 100644 --- a/crds/secretmanager_v1beta1_secretmanagersecretversion.yaml +++ b/crds/secretmanager_v1beta1_secretmanagersecretversion.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/securesourcemanager_v1alpha1_securesourcemanagerinstance.yaml b/crds/securesourcemanager_v1alpha1_securesourcemanagerinstance.yaml index 9f337b316c..b50e558503 100644 --- a/crds/securesourcemanager_v1alpha1_securesourcemanagerinstance.yaml +++ b/crds/securesourcemanager_v1alpha1_securesourcemanagerinstance.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -56,7 +56,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: SecureSourceManagerInstance is the Schema for the monitoring + description: SecureSourceManagerInstance is the Schema for the SecureSourceManagerInstance API properties: apiVersion: @@ -72,16 +72,13 @@ spec: metadata: type: object spec: + description: SecureSourceManagerInstanceSpec defines the desired state + of SecureSourceManagerInstance properties: kmsKey: description: Optional. Immutable. Customer-managed encryption key name, in the format projects/*/locations/*/keyRings/*/cryptoKeys/*. type: string - labels: - additionalProperties: - type: string - description: Optional. Labels as key value pairs. - type: object location: description: Immutable. Location of the instance. type: string @@ -127,10 +124,12 @@ spec: - projectRef type: object status: + description: SecureSourceManagerInstanceStatus defines the config connector + machine state of SecureSourceManagerInstance properties: conditions: description: Conditions represent the latest available observations - of the SecureSourceManagerInstance's current state. + of the object's current state. items: properties: lastTransitionTime: @@ -154,6 +153,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the SecureSourceManagerInstance + resource in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -163,7 +166,8 @@ spec: format: int64 type: integer observedState: - description: ObservedState is the latest GCP state. + description: ObservedState is the state of the resource as most recently + observed in GCP. properties: hostConfig: description: Output only. A list of hostnames for this instance. @@ -172,10 +176,10 @@ spec: description: 'Output only. API hostname. This is the hostname to use for **Host: Data Plane** endpoints.' type: string - gitHttp: + gitHTTP: description: Output only. Git HTTP hostname. type: string - gitSsh: + gitSSH: description: Output only. Git SSH hostname. type: string html: @@ -191,8 +195,6 @@ spec: type: string type: object type: object - required: - - spec type: object served: true storage: true diff --git a/crds/securitycenter_v1alpha1_securitycenternotificationconfig.yaml b/crds/securitycenter_v1alpha1_securitycenternotificationconfig.yaml index 67355b9e67..f7dd18d2f4 100644 --- a/crds/securitycenter_v1alpha1_securitycenternotificationconfig.yaml +++ b/crds/securitycenter_v1alpha1_securitycenternotificationconfig.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/securitycenter_v1alpha1_securitycentersource.yaml b/crds/securitycenter_v1alpha1_securitycentersource.yaml index 778b9a0fbd..6a6aa1b27a 100644 --- a/crds/securitycenter_v1alpha1_securitycentersource.yaml +++ b/crds/securitycenter_v1alpha1_securitycentersource.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/servicedirectory_v1beta1_servicedirectoryendpoint.yaml b/crds/servicedirectory_v1beta1_servicedirectoryendpoint.yaml index 208235d445..56dd640741 100644 --- a/crds/servicedirectory_v1beta1_servicedirectoryendpoint.yaml +++ b/crds/servicedirectory_v1beta1_servicedirectoryendpoint.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/servicedirectory_v1beta1_servicedirectorynamespace.yaml b/crds/servicedirectory_v1beta1_servicedirectorynamespace.yaml index 3ab00e4e9c..7ab9ce93ca 100644 --- a/crds/servicedirectory_v1beta1_servicedirectorynamespace.yaml +++ b/crds/servicedirectory_v1beta1_servicedirectorynamespace.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/servicedirectory_v1beta1_servicedirectoryservice.yaml b/crds/servicedirectory_v1beta1_servicedirectoryservice.yaml index 52f030658e..3c4c348ab3 100644 --- a/crds/servicedirectory_v1beta1_servicedirectoryservice.yaml +++ b/crds/servicedirectory_v1beta1_servicedirectoryservice.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/servicenetworking_v1beta1_servicenetworkingconnection.yaml b/crds/servicenetworking_v1beta1_servicenetworkingconnection.yaml index 4ea7dba917..73e32c4e78 100644 --- a/crds/servicenetworking_v1beta1_servicenetworkingconnection.yaml +++ b/crds/servicenetworking_v1beta1_servicenetworkingconnection.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/serviceusage_v1alpha1_serviceusageconsumerquotaoverride.yaml b/crds/serviceusage_v1alpha1_serviceusageconsumerquotaoverride.yaml index 044279b0af..02e988bc79 100644 --- a/crds/serviceusage_v1alpha1_serviceusageconsumerquotaoverride.yaml +++ b/crds/serviceusage_v1alpha1_serviceusageconsumerquotaoverride.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/serviceusage_v1beta1_service.yaml b/crds/serviceusage_v1beta1_service.yaml index 4ecd11d57e..2ab6d1741b 100644 --- a/crds/serviceusage_v1beta1_service.yaml +++ b/crds/serviceusage_v1beta1_service.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/serviceusage_v1beta1_serviceidentity.yaml b/crds/serviceusage_v1beta1_serviceidentity.yaml index afbbe0e087..1186cf18e5 100644 --- a/crds/serviceusage_v1beta1_serviceidentity.yaml +++ b/crds/serviceusage_v1beta1_serviceidentity.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/sourcerepo_v1beta1_sourcereporepository.yaml b/crds/sourcerepo_v1beta1_sourcereporepository.yaml index bc2e8b78ae..062f84203e 100644 --- a/crds/sourcerepo_v1beta1_sourcereporepository.yaml +++ b/crds/sourcerepo_v1beta1_sourcereporepository.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/spanner_v1beta1_spannerdatabase.yaml b/crds/spanner_v1beta1_spannerdatabase.yaml index 49aa657b1f..e252cc6079 100644 --- a/crds/spanner_v1beta1_spannerdatabase.yaml +++ b/crds/spanner_v1beta1_spannerdatabase.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/spanner_v1beta1_spannerinstance.yaml b/crds/spanner_v1beta1_spannerinstance.yaml index 219afe938f..fff442de26 100644 --- a/crds/spanner_v1beta1_spannerinstance.yaml +++ b/crds/spanner_v1beta1_spannerinstance.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/sql_v1beta1_sqldatabase.yaml b/crds/sql_v1beta1_sqldatabase.yaml index a27201a48d..47bdb3a8aa 100644 --- a/crds/sql_v1beta1_sqldatabase.yaml +++ b/crds/sql_v1beta1_sqldatabase.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/sql_v1beta1_sqlinstance.yaml b/crds/sql_v1beta1_sqlinstance.yaml index 4f39a9192f..2c64fda835 100644 --- a/crds/sql_v1beta1_sqlinstance.yaml +++ b/crds/sql_v1beta1_sqlinstance.yaml @@ -16,13 +16,12 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" cnrm.cloud.google.com/stability-level: stable cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" name: sqlinstances.sql.cnrm.cloud.google.com spec: group: sql.cnrm.cloud.google.com @@ -30,6 +29,7 @@ spec: categories: - gcp kind: SQLInstance + listKind: SQLInstanceList plural: sqlinstances shortNames: - gcpsqlinstance @@ -56,23 +56,80 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: SQLInstance is the Schema for the sql API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: properties: + cloneSource: + description: Create this database as a clone of a source instance. + Immutable. + properties: + binLogCoordinates: + description: Binary log coordinates, if specified, identify the + position up to which the source instance is cloned. If not specified, + the source instance is cloned up to the most recent binary log + coordinates. + properties: + binLogFileName: + description: Name of the binary log file for a Cloud SQL instance. + type: string + binLogPosition: + description: Position (offset) within the binary log file. + format: int64 + type: integer + type: object + databaseNames: + description: (SQL Server only) Clone only the specified databases + from the source instance. Clone all databases if empty. + items: + type: string + type: array + pointInTime: + description: Timestamp, if specified, identifies the time to which + the source instance is cloned. + type: string + sqlInstanceRef: + description: The source SQLInstance to clone + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The SQLInstance selfLink, when not managed by + Config Connector. + type: string + name: + description: The `name` field of a `SQLInstance` resource. + type: string + namespace: + description: The `namespace` field of a `SQLInstance` resource. + type: string + type: object + type: object databaseVersion: - default: MYSQL_5_6 description: The MySQL, PostgreSQL or SQL Server (beta) version to use. Supported values include MYSQL_5_6, MYSQL_5_7, MYSQL_8_0, POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, POSTGRES_14, @@ -97,14 +154,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object instanceType: @@ -131,14 +188,14 @@ spec: - external properties: external: - description: 'Allowed value: The `name` field of a `SQLInstance` - resource.' + description: The SQLInstance selfLink, when not managed by Config + Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `SQLInstance` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `SQLInstance` resource. type: string type: object region: @@ -168,6 +225,7 @@ spec: connectRetryInterval: description: Immutable. The number of seconds between connect retries. MySQL's default is 60 seconds. + format: int64 type: integer dumpFilePath: description: Immutable. Path to a SQL file in Google Cloud Storage @@ -182,20 +240,10 @@ spec: type: boolean masterHeartbeatPeriod: description: Immutable. Time in ms between replication heartbeats. + format: int64 type: integer password: description: Immutable. Password for the replication connection. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -217,8 +265,8 @@ spec: from. type: string required: - - name - key + - name type: object type: object type: object @@ -240,17 +288,6 @@ spec: type: string rootPassword: description: Initial root password. Required for MS SQL Server. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -271,8 +308,8 @@ spec: description: Name of the Secret to extract a value from. type: string required: - - name - key + - name type: object type: object type: object @@ -298,22 +335,25 @@ spec: threadsPerCore: description: The number of threads per physical core. Can be 1 or 2. + format: int64 type: integer type: object authorizedGaeApplications: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. items: type: string type: array availabilityType: - description: |- - The availability type of the Cloud SQL instance, high availability - (REGIONAL) or single zone (ZONAL). For all instances, ensure that - settings.backup_configuration.enabled is set to true. - For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled is set to true. - For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled + description: The availability type of the Cloud SQL instance, + high availability (REGIONAL) or single zone (ZONAL). For all + instances, ensure that settings.backup_configuration.enabled + is set to true. For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled + is set to true. For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled is set to true. Defaults to ZONAL. type: string backupConfiguration: @@ -322,6 +362,7 @@ spec: properties: retainedBackups: description: Number of backups to retain. + format: int64 type: integer retentionUnit: description: The unit that 'retainedBackups' represents. @@ -351,6 +392,7 @@ spec: description: The number of days of transaction logs we retain for point in time restore, from 1-7. (For PostgreSQL Enterprise Plus instances, from 1 to 35.). + format: int64 type: integer type: object collation: @@ -360,9 +402,12 @@ spec: description: Specifies if connections must use Cloud SQL connectors. type: string crashSafeReplication: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: boolean dataCacheConfig: description: Data cache configurations. @@ -419,11 +464,13 @@ spec: description: The maximum size, in GB, to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. + format: int64 type: integer diskSize: description: The size of data disk, in GB. Size of a running instance cannot be reduced but can be increased. The minimum value is 10GB. + format: int64 type: integer diskType: description: 'Immutable. The type of data disk: PD_SSD or PD_HDD. @@ -443,10 +490,12 @@ spec: description: Number of query execution plans captured by Insights per minute for all queries combined. Between 0 and 20. Default to 5. + format: int64 type: integer queryStringLength: description: Maximum query length stored in bytes. Between 256 and 4500. Default to 1024. + format: int64 type: integer recordApplicationTags: description: True if Query Insights will record application @@ -508,14 +557,15 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a - `ComputeNetwork` resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` + resource. type: string type: object pscConfig: @@ -568,9 +618,11 @@ spec: properties: day: description: Day of week (1-7), starting on Monday. + format: int64 type: integer hour: description: Hour of day (0-23), ignored if day not set. + format: int64 type: integer updateTrack: description: Receive updates earlier (canary) or later (stable). @@ -589,6 +641,7 @@ spec: type: boolean minLength: description: Minimum number of characters allowed. + format: int64 type: integer passwordChangeInterval: description: Minimum interval after which the password can @@ -596,6 +649,7 @@ spec: type: string reuseInterval: description: Number of previous passwords that cannot be reused. + format: int64 type: integer required: - enablePasswordPolicy @@ -604,9 +658,12 @@ spec: description: Pricing plan for this instance, can only be PER_USE. type: string replicationType: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: string sqlServerAuditConfig: properties: @@ -628,14 +685,15 @@ spec: - external properties: external: - description: 'Allowed value: The `url` field of a `StorageBucket` - resource.' + description: The StorageBucket selfLink, when not managed + by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `StorageBucket` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `StorageBucket` + resource. type: string type: object retentionInterval: @@ -675,8 +733,8 @@ spec: type: string type: array conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the SQLInstance's current state. items: properties: lastTransitionTime: @@ -730,6 +788,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer privateIpAddress: type: string @@ -775,5 +834,5 @@ status: acceptedNames: kind: "" plural: "" - conditions: [] - storedVersions: [] + conditions: null + storedVersions: null diff --git a/crds/sql_v1beta1_sqlsslcert.yaml b/crds/sql_v1beta1_sqlsslcert.yaml index 203a6b13ad..dc57f84609 100644 --- a/crds/sql_v1beta1_sqlsslcert.yaml +++ b/crds/sql_v1beta1_sqlsslcert.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/sql_v1beta1_sqluser.yaml b/crds/sql_v1beta1_sqluser.yaml index 0a1fd4233f..b9d4406f3d 100644 --- a/crds/sql_v1beta1_sqluser.yaml +++ b/crds/sql_v1beta1_sqluser.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/storage_v1alpha1_storagehmackey.yaml b/crds/storage_v1alpha1_storagehmackey.yaml index 736f6e1d6e..1fc1635472 100644 --- a/crds/storage_v1alpha1_storagehmackey.yaml +++ b/crds/storage_v1alpha1_storagehmackey.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/storage_v1beta1_storagebucket.yaml b/crds/storage_v1beta1_storagebucket.yaml index 66782e757f..ce3ad4460c 100644 --- a/crds/storage_v1beta1_storagebucket.yaml +++ b/crds/storage_v1beta1_storagebucket.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/storage_v1beta1_storagebucketaccesscontrol.yaml b/crds/storage_v1beta1_storagebucketaccesscontrol.yaml index b619e68148..ff4ea5156e 100644 --- a/crds/storage_v1beta1_storagebucketaccesscontrol.yaml +++ b/crds/storage_v1beta1_storagebucketaccesscontrol.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/storage_v1beta1_storagedefaultobjectaccesscontrol.yaml b/crds/storage_v1beta1_storagedefaultobjectaccesscontrol.yaml index 621d60ac60..688c0bb3ba 100644 --- a/crds/storage_v1beta1_storagedefaultobjectaccesscontrol.yaml +++ b/crds/storage_v1beta1_storagedefaultobjectaccesscontrol.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/storage_v1beta1_storagenotification.yaml b/crds/storage_v1beta1_storagenotification.yaml index ef778ec326..f3f3b32c87 100644 --- a/crds/storage_v1beta1_storagenotification.yaml +++ b/crds/storage_v1beta1_storagenotification.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/storagetransfer_v1alpha1_storagetransferagentpool.yaml b/crds/storagetransfer_v1alpha1_storagetransferagentpool.yaml index 9282db0648..d064b5f1a5 100644 --- a/crds/storagetransfer_v1alpha1_storagetransferagentpool.yaml +++ b/crds/storagetransfer_v1alpha1_storagetransferagentpool.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/storagetransfer_v1beta1_storagetransferjob.yaml b/crds/storagetransfer_v1beta1_storagetransferjob.yaml index 6ae2f1d8b4..6d29402211 100644 --- a/crds/storagetransfer_v1beta1_storagetransferjob.yaml +++ b/crds/storagetransfer_v1beta1_storagetransferjob.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/tags_v1alpha1_tagslocationtagbinding.yaml b/crds/tags_v1alpha1_tagslocationtagbinding.yaml index d5e5235861..c3e81b21b9 100644 --- a/crds/tags_v1alpha1_tagslocationtagbinding.yaml +++ b/crds/tags_v1alpha1_tagslocationtagbinding.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/tags_v1beta1_tagstagbinding.yaml b/crds/tags_v1beta1_tagstagbinding.yaml index bd4fd90b04..ed1fb00c30 100644 --- a/crds/tags_v1beta1_tagstagbinding.yaml +++ b/crds/tags_v1beta1_tagstagbinding.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/tags_v1beta1_tagstagkey.yaml b/crds/tags_v1beta1_tagstagkey.yaml index 3db13b4199..7152034355 100644 --- a/crds/tags_v1beta1_tagstagkey.yaml +++ b/crds/tags_v1beta1_tagstagkey.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/tags_v1beta1_tagstagvalue.yaml b/crds/tags_v1beta1_tagstagvalue.yaml index bbb1cc65c5..4dfb697bfd 100644 --- a/crds/tags_v1beta1_tagstagvalue.yaml +++ b/crds/tags_v1beta1_tagstagvalue.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/tpu_v1alpha1_tpunode.yaml b/crds/tpu_v1alpha1_tpunode.yaml index b21f8b3aa8..3120f0e65b 100644 --- a/crds/tpu_v1alpha1_tpunode.yaml +++ b/crds/tpu_v1alpha1_tpunode.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/vertexai_v1alpha1_vertexaifeaturestore.yaml b/crds/vertexai_v1alpha1_vertexaifeaturestore.yaml index 7416271de3..087bb213f9 100644 --- a/crds/vertexai_v1alpha1_vertexaifeaturestore.yaml +++ b/crds/vertexai_v1alpha1_vertexaifeaturestore.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/vertexai_v1alpha1_vertexaifeaturestoreentitytype.yaml b/crds/vertexai_v1alpha1_vertexaifeaturestoreentitytype.yaml index 52961bb607..6f2c2ee159 100644 --- a/crds/vertexai_v1alpha1_vertexaifeaturestoreentitytype.yaml +++ b/crds/vertexai_v1alpha1_vertexaifeaturestoreentitytype.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/vertexai_v1alpha1_vertexaifeaturestoreentitytypefeature.yaml b/crds/vertexai_v1alpha1_vertexaifeaturestoreentitytypefeature.yaml index e0978b4a19..e80f1b12b4 100644 --- a/crds/vertexai_v1alpha1_vertexaifeaturestoreentitytypefeature.yaml +++ b/crds/vertexai_v1alpha1_vertexaifeaturestoreentitytypefeature.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/vertexai_v1alpha1_vertexaiindexendpoint.yaml b/crds/vertexai_v1alpha1_vertexaiindexendpoint.yaml index f9011efdbe..d938439baa 100644 --- a/crds/vertexai_v1alpha1_vertexaiindexendpoint.yaml +++ b/crds/vertexai_v1alpha1_vertexaiindexendpoint.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/vertexai_v1alpha1_vertexaimetadatastore.yaml b/crds/vertexai_v1alpha1_vertexaimetadatastore.yaml index fa1ccc0788..7d618a1bf5 100644 --- a/crds/vertexai_v1alpha1_vertexaimetadatastore.yaml +++ b/crds/vertexai_v1alpha1_vertexaimetadatastore.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/vertexai_v1alpha1_vertexaitensorboard.yaml b/crds/vertexai_v1alpha1_vertexaitensorboard.yaml index 686a4ea51f..adf3a8f6c3 100644 --- a/crds/vertexai_v1alpha1_vertexaitensorboard.yaml +++ b/crds/vertexai_v1alpha1_vertexaitensorboard.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/vertexai_v1beta1_vertexaidataset.yaml b/crds/vertexai_v1beta1_vertexaidataset.yaml index 18bba386d9..16be26d654 100644 --- a/crds/vertexai_v1beta1_vertexaidataset.yaml +++ b/crds/vertexai_v1beta1_vertexaidataset.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/vertexai_v1beta1_vertexaiendpoint.yaml b/crds/vertexai_v1beta1_vertexaiendpoint.yaml index d2c707b948..c4c76e1f76 100644 --- a/crds/vertexai_v1beta1_vertexaiendpoint.yaml +++ b/crds/vertexai_v1beta1_vertexaiendpoint.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/vertexai_v1beta1_vertexaiindex.yaml b/crds/vertexai_v1beta1_vertexaiindex.yaml index 4ca22d5434..288be96095 100644 --- a/crds/vertexai_v1beta1_vertexaiindex.yaml +++ b/crds/vertexai_v1beta1_vertexaiindex.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/vpcaccess_v1beta1_vpcaccessconnector.yaml b/crds/vpcaccess_v1beta1_vpcaccessconnector.yaml index 09a619e8a7..1efdfa642a 100644 --- a/crds/vpcaccess_v1beta1_vpcaccessconnector.yaml +++ b/crds/vpcaccess_v1beta1_vpcaccessconnector.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/workflows_v1alpha1_workflowsworkflow.yaml b/crds/workflows_v1alpha1_workflowsworkflow.yaml index 63adbf8957..7d31f818b9 100644 --- a/crds/workflows_v1alpha1_workflowsworkflow.yaml +++ b/crds/workflows_v1alpha1_workflowsworkflow.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/crds/workstations_v1alpha1_workstationsworkstationcluster.yaml b/crds/workstations_v1alpha1_workstationsworkstationcluster.yaml index 46f843de1d..70e0a66c00 100644 --- a/crds/workstations_v1alpha1_workstationsworkstationcluster.yaml +++ b/crds/workstations_v1alpha1_workstationsworkstationcluster.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqluser/_vcr_cassettes/dcl.yaml b/dev/ci/periodics/e2e-service-cloudkms old mode 100644 new mode 100755 similarity index 71% rename from pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqluser/_vcr_cassettes/dcl.yaml rename to dev/ci/periodics/e2e-service-cloudkms index da46f9fa04..7161203637 --- a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqluser/_vcr_cassettes/dcl.yaml +++ b/dev/ci/periodics/e2e-service-cloudkms @@ -1,3 +1,4 @@ +#!/usr/bin/env bash # Copyright 2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -12,6 +13,13 @@ # See the License for the specific language governing permissions and # limitations under the License. ---- -version: 2 -interactions: [] +set -o errexit +set -o nounset +set -o pipefail + +REPO_ROOT="$(git rev-parse --show-toplevel)" +cd ${REPO_ROOT} + +export ONLY_TEST_APIGROUP=kms.cnrm.cloud.google.com + +dev/ci/periodics/_create_project_and_run_e2e diff --git a/dev/tasks/create-test-project b/dev/tasks/create-test-project index cfa9ed13ca..cf6a6daedb 100755 --- a/dev/tasks/create-test-project +++ b/dev/tasks/create-test-project @@ -55,6 +55,8 @@ gcloud config set project "${GCP_PROJECT_ID}" gcloud services enable \ compute.googleapis.com \ dataflow.googleapis.com \ + cloudkms.googleapis.com \ + firestore.googleapis.com \ logging.googleapis.com \ monitoring.googleapis.com \ redis.googleapis.com \ diff --git a/dev/tasks/find-missing-fields b/dev/tasks/find-missing-fields index 070c04dda5..7dfb67c97d 100755 --- a/dev/tasks/find-missing-fields +++ b/dev/tasks/find-missing-fields @@ -23,6 +23,8 @@ cd ${REPO_ROOT} # TODO: We need to figure out how to find all the fuzz tests, or maybe we should have one fuzz test # that we register all the types with. +go test -v ./pkg/controller/direct/compute/ -fuzz=FuzzComputeForwardingRuleSpec -fuzztime 60s + go test -v ./pkg/controller/direct/networkconnectivity/ -fuzz=FuzzServiceConnectionPolicySpec -fuzztime 60s go test -v ./pkg/controller/direct/networkconnectivity/ -fuzz=FuzzServiceConnectionPolicyObservedState -fuzztime 60s @@ -34,3 +36,5 @@ go test -v ./pkg/controller/direct/redis/cluster/ -fuzz=FuzzRedisClusterObserved go test -v ./pkg/controller/direct/monitoring/ -fuzz=FuzzMonitoringDashboardSpec -fuzztime 60s go test -v ./pkg/controller/direct/securesourcemanager/ -fuzz=FuzzSecureSourceManagerInstanceSpec -fuzztime 60s go test -v ./pkg/controller/direct/securesourcemanager/ -fuzz=FuzzSecureSourceManagerInstanceObservedState -fuzztime 60s + +go test -v ./pkg/controller/direct/dataform/ -fuzz=FuzzDataformRepositorySpec -fuzztime 60s diff --git a/dev/tasks/generate-crds b/dev/tasks/generate-crds index c79a537b91..6a058010e9 100755 --- a/dev/tasks/generate-crds +++ b/dev/tasks/generate-crds @@ -55,7 +55,7 @@ go run ./scripts/crd-tools reflow-descriptions --dir apis/config/crd/ # excluded_resources are resources that are under development for a direct conversion # we don't modify the CRD just yet for those but will in the future -excluded_resources=("computeforwardingrule" "bigquerydatatransferconfig") +excluded_resources=("bigquerydatatransferconfig" "securesourcemanagerinstance") cd ${REPO_ROOT} cd apis/config/crd/ @@ -68,7 +68,6 @@ for file in *.yaml; do break fi done - if [ "$excluded" = true ]; then echo "Skipping $file as its CRD conversion is excluded for now" continue diff --git a/dev/tools/controllerbuilder/cmd/root.go b/dev/tools/controllerbuilder/cmd/root.go index b1f644f406..c557ad9b6c 100644 --- a/dev/tools/controllerbuilder/cmd/root.go +++ b/dev/tools/controllerbuilder/cmd/root.go @@ -24,30 +24,62 @@ import ( "github.com/GoogleCloudPlatform/k8s-config-connector/dev/tools/controllerbuilder/pkg/commands/updatetypes" "github.com/GoogleCloudPlatform/k8s-config-connector/dev/tools/controllerbuilder/pkg/options" "github.com/GoogleCloudPlatform/k8s-config-connector/dev/tools/controllerbuilder/scaffold" - "github.com/GoogleCloudPlatform/k8s-config-connector/dev/tools/controllerbuilder/template" + cctemplate "github.com/GoogleCloudPlatform/k8s-config-connector/dev/tools/controllerbuilder/template/controller" "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/runtime/schema" ) -func buildAddCommand(baseOptions *options.GenerateOptions) *cobra.Command { - // TODO: Resource and kind name should be the same. Validation the uppercase/lowercase. - kind := "" +type ControllerOptions struct { + Kind string + ProtoName string +} +func buildAddCommand(baseOptions *options.GenerateOptions) *cobra.Command { + opts := ControllerOptions{} addCmd := &cobra.Command{ Use: "add", Short: "add direct controller", + PreRunE: func(cmd *cobra.Command, args []string) error { + if opts.Kind == "" { + return fmt.Errorf("--kind is required") + } + if opts.ProtoName == "" { + return fmt.Errorf("--proto-resource is required") + } + + if baseOptions.APIVersion == "" { + return fmt.Errorf("--api-version is required") + } + _, err := schema.ParseGroupVersion(baseOptions.APIVersion) + if err != nil { + return fmt.Errorf("unable to parse --api-version: %w", err) + } + + if baseOptions.ServiceName == "" { + return fmt.Errorf("--service is required") + } + return nil + }, RunE: func(cmd *cobra.Command, args []string) error { - // TODO(check kcc root) - cArgs := &template.ControllerArgs{ - Service: baseOptions.ServiceName, - Version: baseOptions.APIVersion, - Kind: kind, - KindToLower: strings.ToLower(kind), + gv, _ := schema.ParseGroupVersion(baseOptions.APIVersion) + gcpTokens := strings.Split(baseOptions.ServiceName, ".") + version := gcpTokens[len(gcpTokens)-1] + if version[0] != 'v' { + return fmt.Errorf("--service does not contain GCP version") + } + serviceName := strings.TrimSuffix(gv.Group, ".cnrm.cloud.google.com") + cArgs := &cctemplate.ControllerArgs{ + KCCService: serviceName, + KCCVersion: gv.Version, + Kind: opts.Kind, + ProtoResource: opts.ProtoName, + ProtoVersion: version, } - return scaffold.Scaffold(baseOptions.ServiceName, kind, cArgs) + return scaffold.Scaffold(serviceName, opts.ProtoName, cArgs) }, } - addCmd.PersistentFlags().StringVarP(&kind, "resourceInKind", "r", "", "the GCP resource name under the GCP service. should be in camel case ") - + addCmd.Flags().StringVarP(&opts.ProtoName, "proto-resource", "p", "", "the GCP resource proto name. It should match the name in the proto apis. i.e. For resource google.storage.v1.bucket, the `--proto-resource` should be `bucket`. If `--kind` is not given, the `--proto-resource` value will also be used as the kind name with a capital letter `Storage`.") + addCmd.Flags().StringVarP(&opts.Kind, "kind", "k", "", "the KCC resource Kind. requires `--proto-resource`.") return addCmd } diff --git a/dev/tools/controllerbuilder/generate.sh b/dev/tools/controllerbuilder/generate.sh index f1d060c028..63d50323c2 100755 --- a/dev/tools/controllerbuilder/generate.sh +++ b/dev/tools/controllerbuilder/generate.sh @@ -110,8 +110,6 @@ go run . generate-mapper \ --output-dir ${OUTPUT_MAPPER} \ --api-dir ${APIS_DIR} -# BigQueryDatasetAccess - go run . generate-types \ --proto-source-path ../proto-to-mapper/build/googleapis.pb \ --service google.cloud.bigquery.v2 \ @@ -129,6 +127,47 @@ go run . generate-types \ --kind BigQueryDataTransferConfig \ --proto-resource TransferConfig +go run . generate-mapper \ + --proto-source-path ../proto-to-mapper/build/googleapis.pb \ + --service google.cloud.bigquery.datatransfer.v1 \ + --api-version bigquerydatatransfer.cnrm.cloud.google.com/v1alpha1 \ + --api-go-package-path github.com/GoogleCloudPlatform/k8s-config-connector/apis \ + --output-dir ${OUTPUT_MAPPER} \ + --api-dir ${APIS_DIR} + +# Firestore +go run . generate-types \ + --proto-source-path ../proto-to-mapper/build/googleapis.pb \ + --service google.firestore.admin.v1 \ + --api-version firestore.cnrm.cloud.google.com/v1alpha1 \ + --output-api ${APIS_DIR} \ + --kind FirestoreDatabase \ + --proto-resource Database + +go run . generate-mapper \ + --proto-source-path ../proto-to-mapper/build/googleapis.pb \ + --service google.firestore.admin.v1 \ + --api-version firestore.cnrm.cloud.google.com/v1alpha1 \ + --api-go-package-path github.com/GoogleCloudPlatform/k8s-config-connector/apis \ + --output-dir ${OUTPUT_MAPPER} \ + --api-dir ${APIS_DIR} + +# Certificate Manager DNSAuthorization +go run . generate-types \ + --service google.cloud.certificatemanager.v1 \ + --proto-source-path ../proto-to-mapper/build/googleapis.pb \ + --output-api $REPO_ROOT/apis \ + --kind CertificateManagerDNSAuthorization \ + --proto-resource DnsAuthorization \ + --api-version "certificatemanager.cnrm.cloud.google.com/v1beta1" + +go run . generate-types \ + --service google.cloud.certificatemanager.v1 \ + --proto-source-path ../proto-to-mapper/build/googleapis.pb \ + --output-api $REPO_ROOT/apis \ + --kind CertificateManagerDNSAuthorization \ + --proto-resource DnsAuthorization \ + --api-version "certificatemanager.cnrm.cloud.google.com/v1alpha1" # Fix up formatting ${REPO_ROOT}/dev/tasks/fix-gofmt diff --git a/dev/tools/controllerbuilder/pkg/codegen/mappergenerator.go b/dev/tools/controllerbuilder/pkg/codegen/mappergenerator.go index 24b28787ab..70646637be 100644 --- a/dev/tools/controllerbuilder/pkg/codegen/mappergenerator.go +++ b/dev/tools/controllerbuilder/pkg/codegen/mappergenerator.go @@ -224,7 +224,9 @@ func (v *MapperGenerator) writeMapFunctionsForPair(out io.Writer, srcDir string, krmFieldName := goFieldName(protoField) krmField := goFields[krmFieldName] if krmField == nil { - fmt.Fprintf(out, "\t// MISSING: %s\n", krmFieldName) + if !v.fieldExistInCounterpartStruct(goType, krmFieldName) { // special handling for Spec and observedState structs which map to the same proto message. + fmt.Fprintf(out, "\t// MISSING: %s\n", krmFieldName) + } continue } @@ -317,6 +319,11 @@ func (v *MapperGenerator) writeMapFunctionsForPair(out io.Writer, srcDir string, functionName = string(msg.Name()) + "_" + krmFieldName + "_FromProto" } + // special handling for proto messages that mapped to KRM string + if _, ok := protoMessagesNotMappedToGoStruct[string(protoField.Message().FullName())]; ok { + functionName = krmFromProtoFunctionName(protoField, krmField.Name) + } + fmt.Fprintf(out, "\tout.%s = %s(mapCtx, in.%s)\n", krmFieldName, functionName, @@ -381,7 +388,9 @@ func (v *MapperGenerator) writeMapFunctionsForPair(out io.Writer, srcDir string, krmFieldName := goFieldName(protoField) krmField := goFields[krmFieldName] if krmField == nil { - fmt.Fprintf(out, "\t// MISSING: %s\n", krmFieldName) + if !v.fieldExistInCounterpartStruct(goType, krmFieldName) { // special handling for spec and state structs which map to the same proto message. + fmt.Fprintf(out, "\t// MISSING: %s\n", krmFieldName) + } continue } @@ -480,6 +489,11 @@ func (v *MapperGenerator) writeMapFunctionsForPair(out io.Writer, srcDir string, functionName = string(msg.Name()) + "_" + krmFieldName + "_ToProto" } + // special handling for proto messages that mapped to KRM string + if _, ok := protoMessagesNotMappedToGoStruct[string(protoField.Message().FullName())]; ok { + functionName = krmToProtoFunctionName(protoField, krmField.Name) + } + oneof := protoField.ContainingOneof() if oneof != nil { fmt.Fprintf(out, "\tif oneof := %s(mapCtx, in.%s); oneof != nil {\n", @@ -686,3 +700,62 @@ func sortIntoMessageSlice(messages protoreflect.MessageDescriptors) []protorefle }) return out } + +func krmFromProtoFunctionName(protoField protoreflect.FieldDescriptor, krmFieldName string) string { + fullname := string(protoField.Message().FullName()) + switch fullname { + case "google.protobuf.Timestamp": + return "direct.StringTimestamp_FromProto" + case "google.protobuf.Struct": + return krmFieldName + "_FromProto" + } + klog.Fatalf("unhandled case in krmFromProtoFunctionName for proto field %s", fullname) + return "" +} + +func krmToProtoFunctionName(protoField protoreflect.FieldDescriptor, krmFieldName string) string { + fullname := string(protoField.Message().FullName()) + switch fullname { + case "google.protobuf.Timestamp": + return "direct.StringTimestamp_ToProto" + case "google.protobuf.Struct": + return krmFieldName + "_ToProto" + } + klog.Fatalf("unhandled case in krmToProtoFunctionName for proto field %s", fullname) + return "" +} + +func (v *MapperGenerator) fieldExistInCounterpartStruct(goType *gocode.GoStruct, krmFieldName string) bool { + counterpartTypeName := getCounterpartTypeName(goType.Name) + if counterpartTypeName == "" { + return false + } + + for _, pair := range v.typePairs { + if pair.KRMType.Name == counterpartTypeName { + return fieldExistInStruct(pair.KRMType, krmFieldName) + } + } + + return false +} + +func getCounterpartTypeName(goTypeName string) string { + switch { + case strings.HasSuffix(goTypeName, "Spec"): + return strings.TrimSuffix(goTypeName, "Spec") + "ObservedState" + case strings.HasSuffix(goTypeName, "ObservedState"): + return strings.TrimSuffix(goTypeName, "ObservedState") + "Spec" + default: + return "" + } +} + +func fieldExistInStruct(goType *gocode.GoStruct, fieldName string) bool { + for _, field := range goType.Fields { + if field.Name == fieldName { + return true + } + } + return false +} diff --git a/dev/tools/controllerbuilder/scaffold/controller.go b/dev/tools/controllerbuilder/scaffold/controller.go index ac35db23ec..d6a5df572d 100644 --- a/dev/tools/controllerbuilder/scaffold/controller.go +++ b/dev/tools/controllerbuilder/scaffold/controller.go @@ -24,7 +24,7 @@ import ( "strings" "text/template" - ccTemplate "github.com/GoogleCloudPlatform/k8s-config-connector/dev/tools/controllerbuilder/template" + ccTemplate "github.com/GoogleCloudPlatform/k8s-config-connector/dev/tools/controllerbuilder/template/controller" "github.com/fatih/color" "golang.org/x/tools/imports" ) @@ -34,6 +34,10 @@ const ( directControllerRelPath = "pkg/controller/direct" ) +var funcMap = template.FuncMap{ + "ToLower": strings.ToLower, +} + func Scaffold(service, kind string, cArgs *ccTemplate.ControllerArgs) error { var errs []error if err := generateController(service, kind, cArgs); err != nil { @@ -53,7 +57,7 @@ func Scaffold(service, kind string, cArgs *ccTemplate.ControllerArgs) error { } func generateController(service, kind string, cArgs *ccTemplate.ControllerArgs) error { - tmpl, err := template.New(cArgs.Kind).Parse(ccTemplate.ControllerTemplate) + tmpl, err := template.New(cArgs.Kind).Funcs(funcMap).Parse(ccTemplate.ControllerTemplate) if err != nil { return fmt.Errorf("parse controller template: %s", err) } diff --git a/dev/tools/controllerbuilder/template/controller.go b/dev/tools/controllerbuilder/template/controller/controller.go similarity index 63% rename from dev/tools/controllerbuilder/template/controller.go rename to dev/tools/controllerbuilder/template/controller/controller.go index 65095a2d0d..a9b9484e5c 100644 --- a/dev/tools/controllerbuilder/template/controller.go +++ b/dev/tools/controllerbuilder/template/controller/controller.go @@ -12,17 +12,23 @@ // See the License for the specific language governing permissions and // limitations under the License. -package template +package controller type ControllerArgs struct { - Service string - Version string - Kind string - KindToLower string + // The ConfigConnector Group without cnrm.google.com + KCCService string + // The ConfigConnector Version. Only allow v1alpha1 and v1beta1 + KCCVersion string + // The ConfigConnector Kind + Kind string + // The GCP resource name. Normally the same with the `Kind` without KCCService. + ProtoResource string + // The GCP API version. + ProtoVersion string } const ControllerTemplate = ` -package {{.Service}} +package {{.KCCService}} import ( "context" @@ -30,7 +36,7 @@ import ( "strings" "time" - krm "github.com/GoogleCloudPlatform/k8s-config-connector/apis/{{.Service}}/{{.Version}}" + krm "github.com/GoogleCloudPlatform/k8s-config-connector/apis/{{.KCCService}}/{{.KCCVersion}}" refs "github.com/GoogleCloudPlatform/k8s-config-connector/apis/refs/v1beta1" "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/config" "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct" @@ -38,9 +44,10 @@ import ( "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/registry" // TODO(user): Update the import with the google cloud client - gcp "cloud.google.com/go/{{.Service}}/apiv1" + gcp "cloud.google.com/go/{{.KCCService}}/apiv1" + // TODO(user): Update the import with the google cloud client api protobuf - {{.Service}}pb "cloud.google.com/go/{{.Service}}/v1/{{.KindToLower}}pb" + {{.KCCService}}pb "cloud.google.com/go/{{.KCCService}}/{{.ProtoVersion}}/{{.KCCService}}pb" "google.golang.org/api/option" "google.golang.org/protobuf/types/known/fieldmaskpb" "google.golang.org/protobuf/types/known/timestamppb" @@ -53,13 +60,13 @@ import ( ) const ( - ctrlName = "{{.Service}}-controller" + ctrlName = "{{.KCCService}}-controller" // TODO(user): Confirm service domain - serviceDomain = "//{{.Service}}.googleapis.com" + serviceDomain = "//{{.KCCService}}.googleapis.com" ) func init() { - registry.RegisterModel(krm.GroupVersionKind, NewModel) + registry.RegisterModel(krm.{{.Kind}}GVK, NewModel) } func NewModel(ctx context.Context, config *config.ControllerConfig) (directbase.Model, error) { @@ -74,19 +81,13 @@ type model struct { func (m *model) client(ctx context.Context) (*gcp.Client, error) { var opts []option.ClientOption - if m.config.UserAgent != "" { - opts = append(opts, option.WithUserAgent(m.config.UserAgent)) - } - if m.config.HTTPClient != nil { - opts = append(opts, option.WithHTTPClient(m.config.HTTPClient)) - } - if m.config.UserProjectOverride && m.config.BillingProject != "" { - opts = append(opts, option.WithQuotaProject(m.config.BillingProject)) + opts, err := m.config.RESTClientOptions() + if err != nil { + return nil, err } - gcpClient, err := gcp.NewRESTClient(ctx, opts...) if err != nil { - return nil, fmt.Errorf("building {{.Service}} client: %w", err) + return nil, fmt.Errorf("building {{.ProtoResource}} client: %w", err) } return gcpClient, err } @@ -106,9 +107,6 @@ func (m *model) AdapterForObject(ctx context.Context, reader client.Reader, u *u return nil, fmt.Errorf("cannot resolve resource ID") } - // TODO(user): Use the proper function to validate and resolve dependent KCC resources. - // i.e. ResolveProject, ResolveNetwork. etc - // TODO(kcc): ops.WithProjectRef, ops.WithNetworkRef projectRef, err := refs.ResolveProject(ctx, reader, obj, obj.Spec.ProjectRef) if err != nil { return nil, err @@ -118,6 +116,9 @@ func (m *model) AdapterForObject(ctx context.Context, reader client.Reader, u *u return nil, fmt.Errorf("cannot resolve project") } + // Get location + location := obj.Spec.Location + var id *{{.Kind}}Identity externalRef := direct.ValueOf(obj.Status.ExternalRef) if externalRef == "" { @@ -128,22 +129,22 @@ func (m *model) AdapterForObject(ctx context.Context, reader client.Reader, u *u return nil, err } - if id.project != projectID { + if id.Parent.Project != projectID { return nil, fmt.Errorf("{{.Kind}} %s/%s has spec.projectRef changed, expect %s, got %s", - u.GetNamespace(), u.GetName(), id.project, projectID) + u.GetNamespace(), u.GetName(), id.Parent.Project, projectID) } - if id.location != location { + if id.Parent.Location != location { return nil, fmt.Errorf("{{.Kind}} %s/%s has spec.location changed, expect %s, got %s", - u.GetNamespace(), u.GetName(), id.location, location) + u.GetNamespace(), u.GetName(), id.Parent.Location, location) } - if id.{{.KindToLower}} != resourceID { + if id.{{.ProtoResource}} != resourceID { return nil, fmt.Errorf("{{.Kind}} %s/%s has metadata.name or spec.resourceID changed, expect %s, got %s", - u.GetNamespace(), u.GetName(), id.{{.KindToLower}}, resourceID) + u.GetNamespace(), u.GetName(), id.{{.ProtoResource}}, resourceID) } } // TODO(kcc): GetGCPClient as interface method. - // Get {{.Service}} GCP client + // Get {{.KCCService}} GCP client gcpClient, err := m.client(ctx) if err != nil { return nil, err @@ -161,34 +162,29 @@ func (m *model) AdapterForURL(ctx context.Context, url string) (directbase.Adapt } type Adapter struct { - resourceID string - projectID string + id *{{.Kind}}Identity gcpClient *gcp.Client desired *krm.{{.Kind}} - actual *{{.Service}}pb.{{.Kind}} + actual *{{.KCCService}}pb.{{.ProtoResource}} } var _ directbase.Adapter = &Adapter{} func (a *Adapter) Find(ctx context.Context) (bool, error) { log := klog.FromContext(ctx).WithName(ctrlName) - log.V(2).Info("getting {{.Kind}}", "name", a.id.fullyQualifiedName()) - - if a.resourceID == "" { - return false, nil - } + log.V(2).Info("getting {{.Kind}}", "name", a.id.FullyQualifiedName()) // TODO(user): write the gcp "GET" operation. - req := &{{.Service}}pb.Get{{.Kind}}Request{Name: a.id.fullyQualifiedName()} - {{.KindToLower}}pb, err := a.gcpClient.Get{{.Kind}}(ctx, req) + req := &{{.KCCService}}pb.Get{{.ProtoResource}}Request{Name: a.id.FullyQualifiedName()} + {{.ProtoResource | ToLower }}pb, err := a.gcpClient.Get{{.ProtoResource}}(ctx, req) if err != nil { if direct.IsNotFound(err) { return false, nil } - return false, fmt.Errorf("getting {{.Kind}} %q: %w", a.id.fullyQualifiedName(), err) + return false, fmt.Errorf("getting {{.Kind}} %q: %w", a.id.FullyQualifiedName(), err) } - a.actual = {{.KindToLower}}pb + a.actual = {{.ProtoResource | ToLower }}pb return true, nil } @@ -196,17 +192,9 @@ func (a *Adapter) Create(ctx context.Context, createOp *directbase.CreateOperati u := createOp.GetUnstructured() log := klog.FromContext(ctx).WithName(ctrlName) - log.V(2).Info("creating {{.Kind}}", "name", a.id.fullyQualifiedName()) + log.V(2).Info("creating {{.ProtoResource}}", "name", a.id.FullyQualifiedName()) mapCtx := &direct.MapContext{} - projectID := a.projectID - if projectID == "" { - return fmt.Errorf("project is empty") - } - if a.resourceID == "" { - return fmt.Errorf("resourceID is empty") - } - desired := a.desired.DeepCopy() // TODO(user): Please add the Spec_ToProto mappers under the same package resource := {{.Kind}}Spec_ToProto(mapCtx, &desired.Spec) @@ -215,20 +203,19 @@ func (a *Adapter) Create(ctx context.Context, createOp *directbase.CreateOperati } // TODO(user): Complete the gcp "CREATE" or "INSERT" request with required fields. - req := &{{.Service}}pb.Create{{.Kind}}Request{ - Resource: resource, - Project: a.ProjectID, + req := &{{.KCCService}}pb.Create{{.ProtoResource}}Request{ + Parent: a.id.Parent.String(), + {{.ProtoResource}}: resource, } - op, err := a.gcpClient.Create{{.Kind}}(ctx, req) + op, err := a.gcpClient.Create{{.ProtoResource}}(ctx, req) if err != nil { - return fmt.Errorf("creating {{.Kind}} %s: %w", a.id.fullyQualifiedName(), err) + return fmt.Errorf("creating {{.ProtoResource}} %s: %w", a.id.FullyQualifiedName(), err) } - // TODO(user): Adjust the response, depending on the LRO or not. created, err := op.Wait(ctx) if err != nil { - return fmt.Errorf("{{.Kind}} %s waiting creation: %w", a.id.fullyQualifiedName(), err) + return fmt.Errorf("{{.ProtoResource}} %s waiting creation: %w", a.id.FullyQualifiedName(), err) } - log.V(2).Info("successfully created {{.Kind}}", "name", a.id.fullyQualifiedName()) + log.V(2).Info("successfully created {{.ProtoResource}}", "name", a.id.FullyQualifiedName()) status := &krm.{{.Kind}}Status{} // TODO(user): (Optional) Please add the StatusObservedState_FromProto mappers under the same package @@ -244,7 +231,7 @@ func (a *Adapter) Update(ctx context.Context, updateOp *directbase.UpdateOperati u := updateOp.GetUnstructured() log := klog.FromContext(ctx).WithName(ctrlName) - log.V(2).Info("updating {{.Kind}}", "name", a.id.fullyQualifiedName()) + log.V(2).Info("updating {{.ProtoResource}}", "name", a.id.FullyQualifiedName()) mapCtx := &direct.MapContext{} // TODO(user): (Optional) Add GCP mutable fields. @@ -262,24 +249,24 @@ func (a *Adapter) Update(ctx context.Context, updateOp *directbase.UpdateOperati } // TODO(user): Complete the gcp "UPDATE" or "PATCH" request with required fields. - req := &{{.Service}}pb.Update{{.Kind}}Request{ - Resource: resource, - Project: a.ProjectID, + req := &{{.KCCService}}pb.Update{{.ProtoResource}}Request{ + Name: a.id.FullyQualifiedName(), + UpdateMask: updateMask, + {{.ProtoResource}}: resource, } - op, err := a.gcpClient.Update{{.Kind}}(ctx, req) + op, err := a.gcpClient.Update{{.ProtoResource}}(ctx, req) if err != nil { - return fmt.Errorf("updating {{.Kind}} %s: %w", a.id.fullyQualifiedName(), err) + return fmt.Errorf("updating {{.ProtoResource}} %s: %w", a.id.FullyQualifiedName(), err) } - // TODO(user): Adjust the response, depending on the LRO or not. updated, err := op.Wait(ctx) if err != nil { - return fmt.Errorf("{{.Kind}} %s waiting update: %w", a.id.fullyQualifiedName(), err) + return fmt.Errorf("{{.ProtoResource}} %s waiting update: %w", a.id.FullyQualifiedName(), err) } - log.V(2).Info("successfully updated {{.Kind}}", "name", a.id.fullyQualifiedName()) + log.V(2).Info("successfully updated {{.ProtoResource}}", "name", a.id.FullyQualifiedName()) status := &krm.{{.Kind}}Status{} // TODO(user): (Optional) Please add the StatusObservedState_FromProto mappers under the same package - status := {{.Kind}}StatusObservedState_FromProto(mapCtx, created) + status := {{.Kind}}StatusObservedState_FromProto(mapCtx, updated) if mapCtx.Err() != nil { return mapCtx.Err() } @@ -287,29 +274,43 @@ func (a *Adapter) Update(ctx context.Context, updateOp *directbase.UpdateOperati } func (a *Adapter) Export(ctx context.Context) (*unstructured.Unstructured, error) { - // TODO(kcc) - return nil, nil + if a.actual == nil { + return nil, fmt.Errorf("Find() not called") + } + u := &unstructured.Unstructured{} + + obj := &krm.{{.Kind}}{} + mapCtx := &direct.MapContext{} + obj.Spec = direct.ValueOf({{.Kind}}Spec_FromProto(mapCtx, a.actual)) + if mapCtx.Err() != nil { + return nil, mapCtx.Err() + } + // TODO(user): Update other resource reference + obj.Spec.ProjectRef = &refs.ProjectRef{Name: a.id.Parent.Project} + obj.Spec.Location = a.id.Parent.Location + uObj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) + if err != nil { + return nil, err + } + u.Object = uObj + return u, nil } // Delete implements the Adapter interface. func (a *Adapter) Delete(ctx context.Context, deleteOp *directbase.DeleteOperation) (bool, error) { log := klog.FromContext(ctx).WithName(ctrlName) - log.V(2).Info("deleting {{.Kind}}", "name", a.id.fullyQualifiedName()) + log.V(2).Info("deleting {{.ProtoResource}}", "name", a.id.FullyQualifiedName()) - if a.resourceID == "" { - return false, nil - } - req := &{{.Service}}pb.Delete{{.Kind}}Request{Name: a.id.fullyQualifiedName()} - op, err := a.gcpClient.Delete{{.Kind}}(ctx, req) + req := &{{.KCCService}}pb.Delete{{.ProtoResource}}Request{Name: a.id.FullyQualifiedName()} + op, err := a.gcpClient.Delete{{.ProtoResource}}(ctx, req) if err != nil { - return false, fmt.Errorf("deleting {{.Kind}} %s: %w", a.id.fullyQualifiedName(), err) + return false, fmt.Errorf("deleting {{.ProtoResource}} %s: %w", a.id.FullyQualifiedName(), err) } - log.V(2).Info("successfully deleted {{.Kind}}", "name", a.id.fullyQualifiedName()) + log.V(2).Info("successfully deleted {{.ProtoResource}}", "name", a.id.FullyQualifiedName()) - // TODO(user): Adjust the response, depending on the LRO or not. err = op.Wait(ctx) if err != nil { - return false, fmt.Errorf("waiting delete {{.Kind}} %s: %w", a.id.fullyQualifiedName(), err) + return false, fmt.Errorf("waiting delete {{.ProtoResource}} %s: %w", a.id.FullyQualifiedName(), err) } return true, nil } diff --git a/dev/tools/controllerbuilder/template/externalresource.go b/dev/tools/controllerbuilder/template/controller/externalresource.go similarity index 61% rename from dev/tools/controllerbuilder/template/externalresource.go rename to dev/tools/controllerbuilder/template/controller/externalresource.go index bd36bcd3a5..ad6aeea47d 100644 --- a/dev/tools/controllerbuilder/template/externalresource.go +++ b/dev/tools/controllerbuilder/template/controller/externalresource.go @@ -12,31 +12,35 @@ // See the License for the specific language governing permissions and // limitations under the License. -package template +package controller const ExternalResourceTemplate = ` -package {{.Service}} +package {{.KCCService}} import ( "fmt" "strings" ) -// TODO(user): Define resource identity +// The Identifier for ConfigConnector to track the {{.Kind}} resource from the GCP service. type {{.Kind}}Identity struct { - project string - location string - {{.KindToLower}} string + Parent parent + {{.ProtoResource}} string } -// Parent builds a {{.Kind}} parent -func (c *{{.Kind}}Identity) Parent() string { - // TODO(user): Define resource parent +type parent struct { + Project string + Location string } -// FullyQualifiedName builds a {{.Kind}} resource fully qualified name +func (p *parent) String() string{ + return fmt.Sprintf("projects/%s/locations/%s", p.Project, p.Location) +} + +// FullyQualifiedName returns both parent and resource ID in the full url format. func (c *{{.Kind}}Identity) FullyQualifiedName() string { - // TODO(user): Define resource fully qualified name + // TODO(user): Edit the URL path + return fmt.Sprintf("%s/{{.ProtoResource}}s/%s", c.Parent, c.{{.ProtoResource}}) } // AsExternalRef builds a externalRef from a {{.Kind}} @@ -45,7 +49,7 @@ func (c *{{.Kind}}Identity) AsExternalRef() *string { return &e } -// asID builds a {{.Kind}}Identity from a external reference +// asID builds a {{.Kind}}Identity from a ` + "`" + `status.externalRef` + "`" + ` func asID(externalRef string) (*{{.Kind}}Identity, error) { // TODO(user): Build resource identity from external reference if !strings.HasPrefix(externalRef, serviceDomain) { @@ -55,24 +59,22 @@ func asID(externalRef string) (*{{.Kind}}Identity, error) { tokens := strings.Split(path, "/") // TODO(user): Confirm the format of your resources, and verify it like the example below - if len(tokens) != 6 || tokens[0] != "projects" || tokens[2] != "locations" || tokens[4] != "{{.KindToLower}}s" { - return nil, fmt.Errorf("externalRef should be %s/projects//locations//{{.KindToLower}}s/<{{.KindToLower}}>, got %s", + if len(tokens) != 6 || tokens[0] != "projects" || tokens[2] != "locations" || tokens[4] != "{{.ProtoResource}}s" { + return nil, fmt.Errorf("externalRef should be %s/projects//locations//{{.ProtoResource}}s/<{{.ProtoResource}}>, got %s", serviceDomain, externalRef) } return &{{.Kind}}Identity{ - project: tokens[1], - location: tokens[3], - {{.KindToLower}}: tokens[5], + Parent: parent{Project: tokens[1], Location: tokens[3]}, + {{.ProtoResource}}: tokens[5], }, nil } -// BuildID builds a unique identifier {{.Kind}}Identity from resource components -func BuildID(project, location string) *{{.Kind}}Identity { +// BuildID builds the ID for ConfigConnector to track the {{.Kind}} resource from the GCP service. +func BuildID(project, location, resourceID string) *{{.Kind}}Identity { // TODO(user): Build resource identity from resource components, i.e. project, location, resource id return &{{.Kind}}Identity{ - project: project, - location: location, - {{.KindToLower}}: {{.KindToLower}}, + Parent: parent{Project: project, Location: location}, + {{.ProtoResource}}: resourceID, } } ` diff --git a/dev/tools/proto-to-mapper/Makefile b/dev/tools/proto-to-mapper/Makefile index 371ce8c3e8..ae6b19cc02 100644 --- a/dev/tools/proto-to-mapper/Makefile +++ b/dev/tools/proto-to-mapper/Makefile @@ -18,6 +18,7 @@ generate-pb: install-protoc-linux ./third_party/googleapis/google/cloud/*/*/*.proto \ ./third_party/googleapis/google/cloud/*/*/*/*.proto \ ./third_party/googleapis/google/dataflow/*/*.proto \ + ./third_party/googleapis/google/firestore/admin/v1/*.proto \ ./third_party/googleapis/google/iam/v1/*.proto \ ./third_party/googleapis/google/logging/v2/*.proto \ ./third_party/googleapis/google/monitoring/v3/*.proto \ diff --git a/docs/develop-resources/scenarios/migrate-tf-resource-alpha.md b/docs/develop-resources/scenarios/migrate-tf-resource-alpha.md index 61aa99a547..ae37ae454b 100644 --- a/docs/develop-resources/scenarios/migrate-tf-resource-alpha.md +++ b/docs/develop-resources/scenarios/migrate-tf-resource-alpha.md @@ -4,12 +4,13 @@ Follow [Step 1](https://github.com/yuwenma/k8s-config-connector/blob/scifi-guide/docs/develop-resources/guides/1-add-mockgcp-tests.md) -1. The 1st PR should set the `create.yaml `and `update.yaml `fields the same value for both test suites, with `_http.log `telling the matching HTTP request/response, and `_generated_object_.golden.yaml` telling the output-only fields. +1. The 1st PR should set the `create.yaml `and `update.yaml `fields the same value for both test suites, with `_http.log `telling the matching HTTP request/response, and `_generated_object_.golden.yaml` telling the output-only fields. It shall record against real GCP 2. The 2nd PR should have `update.yaml `fields update all mutable fields for both basic and full test suites, with `_http.log` and` _generated_object_.golden.yaml `telling the corresponding git diff. ### PR Reviews +* We require the PR to contain the real GCP record for `_generated_object_.golden.yaml` and `_http.log` * We require the 2nd PR git diff can show the mutable fileds in `update.yaml`. * We require the `_generated_object_.golden.yaml` reflecting the mutable fields are successfully updated. * We require the `dependencies.yaml` to cover all referenced fields, and the `_http.log` showing the Cloud requests. You need to implement those dependencies' MockGCP methods as well. diff --git a/docs/develop-resources/scenarios/migrate-tf-resource-beta.md b/docs/develop-resources/scenarios/migrate-tf-resource-beta.md index a68e0707b6..f269d8698b 100644 --- a/docs/develop-resources/scenarios/migrate-tf-resource-beta.md +++ b/docs/develop-resources/scenarios/migrate-tf-resource-beta.md @@ -10,6 +10,7 @@ Follow [Step 1](https://github.com/yuwenma/k8s-config-connector/blob/scifi-guide ### PR Reviews +* We require the PR to contain the real GCP record for `_generated_object_.golden.yaml` and `_http.log` * We require the 2nd PR git diff can show the mutable fileds in `update.yaml`. * We require the `_generated_object_.golden.yaml` reflecting the mutable fields are successfully updated. * We require the `dependencies.yaml` to cover all referenced fields, and the `_http.log` showing the Cloud requests. You need to implement those dependencies' MockGCP methods as well. diff --git a/docs/develop-resources/scenarios/new-field.md b/docs/develop-resources/scenarios/new-field.md index 674d4e0cee..ce2086e30a 100644 --- a/docs/develop-resources/scenarios/new-field.md +++ b/docs/develop-resources/scenarios/new-field.md @@ -39,3 +39,13 @@ The apis directory the contains the existing API types of the resource. If the newly added fields contain resource references, you should have a second PR to update the resource reference, following [4.2 resolve resource references](https://github.com/yuwenma/k8s-config-connector/blob/scifi-guide/docs/develop-resources/guides/4-add-controller.md#42-resolve-resource-references) (TODO: update the link) Add a new test suite with `dependencies.yaml` to cover the referenced fields. + + +## Add MockGCP coverage + +Follow [Step 1](https://github.com/yuwenma/k8s-config-connector/blob/scifi-guide/docs/develop-resources/guides/1-add-mockgcp-tests.md) + +### PR Reviews + +* We require the PR to contain the real GCP record for `_generated_object_.golden.yaml` and `_http.log` +* We require the PR reflects the new field in the `create.yaml`, `update.yaml`(if mutable), `_generated_object_.golden.yaml` and `_http.log` diff --git a/docs/develop-resources/scenarios/new-resource.md b/docs/develop-resources/scenarios/new-resource.md index 088726b540..67839875cf 100644 --- a/docs/develop-resources/scenarios/new-resource.md +++ b/docs/develop-resources/scenarios/new-resource.md @@ -21,6 +21,7 @@ Different than other scenarios, developing a pure Direct resource requires you t * Code shall come from the auto-generate code. * Only the basic test suite is required, full and other test suites can comment out unimplemented fields. * `_http.log` and `_generated_object_.golden.yaml` shall verify the basic controller is functioning. +* We require the PR to contain the real GCP record for `_generated_object_.golden.yaml` and `_http.log` ## Add MockGCP diff --git a/docs/releasenotes/release-1.122.md b/docs/releasenotes/release-1.122.md index f45620f18e..a073317b57 100644 --- a/docs/releasenotes/release-1.122.md +++ b/docs/releasenotes/release-1.122.md @@ -1,26 +1,28 @@ # v1.122.0 -** This version is not yet released; this document is gathering release notes for the future release ** +* Special shout-outs to @600lyy, @acpana, @anhdle-sso, @barney-s, @CyberHippo, @gemmahou, @haiyanmeng, @hankfreund, @himanikh, @jasonvigil, @jingyih, @justinsb, @maqiuyujoyce, @marko7460, @xiaoweim, @yuwenma, @ziyue-101 for their contributions to this release. -* ... +## Direct Cloud Reconciler: -* Special shout-outs to ... for their - contributions to this release. -TODO: list contributors with `git log v1.121.0... | grep Merge | grep from | awk '{print $6}' | cut -d '/' -f 1 | sort | uniq` +* `RedisCluster` (v1alpha1) +* `SQLInstance` -## Resources promoted from alpha to beta: +## New Resources: -*When resources are promoted from alpha to beta, we (generally) ensure they follow our best practices: use of refs on fields where appropriate, -output fields from GCP APIs are in `status.observedState.*` +* Added support for `RedisCluster` (v1alpha1) resource. -* `PlaceholderKind` +## New Fields: -## New Resources: +* `ContainerCluster` + * The `spec.nodeConfig.taint` can be updated. -* Added support for `PlaceholderKind` (v1beta1) resource. +* `ContainerNodePool` + * The `spec.nodeConfig.taint` can be updated. -## New Fields: +* `SQLInstance` + * Add the `spec.cloneSource`. + +* `RunJob` + * Add the `spec.template.template.volumes[].cloudSqlInstance` -* PlaceholderKind - * Added `spec.placeholder` field. diff --git a/docs/releasenotes/release-1.123.md b/docs/releasenotes/release-1.123.md new file mode 100644 index 0000000000..4871c7c552 --- /dev/null +++ b/docs/releasenotes/release-1.123.md @@ -0,0 +1,26 @@ +# v1.123.0 + +** This version is not yet released; this document is gathering release notes for the future release ** + +* ... + +* Special shout-outs to ... for their + contributions to this release. +TODO: list contributors with `git log v1.122.0... | grep Merge | grep from | awk '{print $6}' | cut -d '/' -f 1 | sort | uniq` + +## Resources promoted from alpha to beta: + +*When resources are promoted from alpha to beta, we (generally) ensure they follow our best practices: use of refs on fields where appropriate, +output fields from GCP APIs are in `status.observedState.*` + +* `PlaceholderKind` + +## New Resources: + +* Added support for `PlaceholderKind` (v1beta1) resource. + +## New Fields: + +* PlaceholderKind + * Added `spec.placeholder` field. + diff --git a/go.mod b/go.mod index 3e863851ac..baf6e50b4d 100644 --- a/go.mod +++ b/go.mod @@ -8,10 +8,12 @@ replace github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp => ./mockgcp require ( cloud.google.com/go/apikeys v1.1.12 + cloud.google.com/go/bigquery v1.62.0 cloud.google.com/go/cloudbuild v1.17.0 cloud.google.com/go/compute v1.28.0 cloud.google.com/go/dataflow v0.10.0 cloud.google.com/go/dataform v0.10.0 + cloud.google.com/go/firestore v1.16.0 cloud.google.com/go/iam v1.2.0 cloud.google.com/go/monitoring v1.21.0 cloud.google.com/go/profiler v0.4.1 @@ -24,12 +26,14 @@ require ( github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp v0.0.0-20240614222432-4bde5b345380 github.com/appscode/jsonpatch v0.0.0-20190108182946-7c0e3b262f30 github.com/blang/semver v3.5.1+incompatible + github.com/blang/semver/v4 v4.0.0 github.com/cenkalti/backoff v2.2.1+incompatible github.com/fatih/color v1.17.0 github.com/ghodss/yaml v1.0.0 github.com/go-logr/logr v1.4.2 github.com/go-logr/zapr v1.3.0 github.com/google/go-cmp v0.6.0 + github.com/google/uuid v1.6.0 github.com/googleapis/gax-go/v2 v2.13.0 github.com/gosimple/slug v1.13.1 github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 @@ -95,7 +99,6 @@ require ( github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/blang/semver/v4 v4.0.0 // indirect github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chai2010/gettext-go v1.0.2 // indirect @@ -136,7 +139,6 @@ require ( github.com/google/pprof v0.0.0-20240528025155-186aa0362fba // indirect github.com/google/s2a-go v0.1.8 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.3 // indirect github.com/gosimple/unidecode v1.0.1 // indirect github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect @@ -214,12 +216,12 @@ require ( go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect go.uber.org/multierr v1.10.0 // indirect golang.org/x/crypto v0.26.0 // indirect - golang.org/x/mod v0.17.0 // indirect + golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.28.0 // indirect golang.org/x/sys v0.24.0 // indirect golang.org/x/term v0.23.0 // indirect golang.org/x/text v0.17.0 // indirect - golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect + golang.org/x/tools v0.22.0 // indirect gomodules.xyz/jsonpatch/v2 v2.3.0 // indirect google.golang.org/appengine v1.6.8 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/go.sum b/go.sum index 8b8ab78ce1..dc3e7258ab 100644 --- a/go.sum +++ b/go.sum @@ -36,6 +36,8 @@ cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvf cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/bigquery v1.62.0 h1:SYEA2f7fKqbSRRBHb7g0iHTtZvtPSPYdXfmqsjpsBwo= +cloud.google.com/go/bigquery v1.62.0/go.mod h1:5ee+ZkF1x/ntgCsFQJAQTM3QkAZOecfCmvxhkJsWRSA= cloud.google.com/go/bigtable v1.31.0 h1:/uVLxGVRbK4mxK/iO89VqXcL/zoTSmkltVfIDYVBluQ= cloud.google.com/go/bigtable v1.31.0/go.mod h1:N/mwZO+4TSHOeyiE1JxO+sRPnW4bnR7WLn9AEaiJqew= cloud.google.com/go/cloudbuild v1.17.0 h1:tMKv6Gh7jPH3TM3QBHkdPzls80kQbUSH9Q20Hn3QD40= @@ -51,6 +53,8 @@ cloud.google.com/go/dataform v0.10.0/go.mod h1:0NKefI6v1ppBEDnwrp6gOMEA3s/RH3ypL cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/firestore v1.16.0 h1:YwmDHcyrxVRErWcgxunzEaZxtNbc8QoFYA/JOEwDPgc= +cloud.google.com/go/firestore v1.16.0/go.mod h1:+22v/7p+WNBSQwdSwP57vz47aZiY+HrDkrOsJNhk7rg= cloud.google.com/go/iam v1.2.0 h1:kZKMKVNk/IsSSc/udOb83K0hL/Yh/Gcqpz+oAkoIFN8= cloud.google.com/go/iam v1.2.0/go.mod h1:zITGuWgsLZxd8OwAlX+eMFgZDXzBm7icj1PVTYG766Q= cloud.google.com/go/longrunning v0.6.0 h1:mM1ZmaNsQsnb+5n1DNPeL0KwQd9jQRqSqSDEkBZr+aI= @@ -1048,8 +1052,8 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= +golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180112015858-5ccada7d0a7b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1324,8 +1328,8 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= +golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/install-bundles/install-bundle-autopilot-gcp-identity/0-cnrm-system.yaml b/install-bundles/install-bundle-autopilot-gcp-identity/0-cnrm-system.yaml index 6d3ae2cf51..2b54da8efb 100644 --- a/install-bundles/install-bundle-autopilot-gcp-identity/0-cnrm-system.yaml +++ b/install-bundles/install-bundle-autopilot-gcp-identity/0-cnrm-system.yaml @@ -16,7 +16,7 @@ apiVersion: v1 kind: Namespace metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-system @@ -25,7 +25,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-controller-manager @@ -35,7 +35,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -45,7 +45,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-resource-stats-recorder @@ -55,7 +55,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-manager @@ -65,7 +65,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-cnrm-system-role @@ -86,7 +86,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-cnrm-system-role @@ -107,7 +107,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -1284,7 +1284,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role @@ -1334,7 +1334,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-cluster-role @@ -1392,7 +1392,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-ns-role @@ -1417,7 +1417,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-role @@ -1447,7 +1447,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -2235,7 +2235,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role @@ -2298,7 +2298,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role-binding @@ -2316,7 +2316,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role-binding @@ -2334,7 +2334,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-admin-binding @@ -2357,7 +2357,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-binding @@ -2374,7 +2374,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-binding @@ -2391,7 +2391,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-watcher-binding @@ -2408,7 +2408,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-binding @@ -2425,7 +2425,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-binding @@ -2442,7 +2442,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -2459,7 +2459,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "8888" prometheus.io/scrape: "true" labels: @@ -2481,7 +2481,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "48797" prometheus.io/scrape: "true" labels: @@ -2502,7 +2502,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2520,7 +2520,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2533,8 +2533,8 @@ spec: - /configconnector/recorder env: - name: CONFIG_CONNECTOR_VERSION - value: 1.121.0 - image: gcr.io/cnrm-eap/recorder:4fd3fd6 + value: 1.122.0 + image: gcr.io/cnrm-eap/recorder:e373e18 imagePullPolicy: Always name: recorder ports: @@ -2568,7 +2568,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2583,7 +2583,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2598,7 +2598,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: gcr.io/cnrm-eap/webhook:4fd3fd6 + image: gcr.io/cnrm-eap/webhook:e373e18 imagePullPolicy: Always name: webhook ports: @@ -2628,7 +2628,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/system: "true" @@ -2643,7 +2643,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/system: "true" @@ -2656,7 +2656,7 @@ spec: env: - name: GOOGLE_APPLICATION_CREDENTIALS value: /var/secrets/google/key.json - image: gcr.io/cnrm-eap/controller:4fd3fd6 + image: gcr.io/cnrm-eap/controller:e373e18 imagePullPolicy: Always name: manager ports: @@ -2693,7 +2693,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2708,7 +2708,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2716,7 +2716,7 @@ spec: containers: - command: - /configconnector/deletiondefender - image: gcr.io/cnrm-eap/deletiondefender:4fd3fd6 + image: gcr.io/cnrm-eap/deletiondefender:e373e18 imagePullPolicy: Always name: deletiondefender ports: @@ -2747,7 +2747,7 @@ kind: HorizontalPodAutoscaler metadata: annotations: autoscaling.alpha.kubernetes.io/metrics: '[{"type":"Resource","resource":{"name":"memory","targetAverageUtilization":70}}]' - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook diff --git a/install-bundles/install-bundle-autopilot-gcp-identity/crds.yaml b/install-bundles/install-bundle-autopilot-gcp-identity/crds.yaml index 1413d71107..13f5a24abc 100644 --- a/install-bundles/install-bundle-autopilot-gcp-identity/crds.yaml +++ b/install-bundles/install-bundle-autopilot-gcp-identity/crds.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -264,7 +264,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -650,7 +650,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -780,7 +780,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -949,7 +949,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -1262,7 +1262,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -2456,7 +2456,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -2895,7 +2895,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -3617,6 +3617,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -4328,6 +4336,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -4350,7 +4366,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -4917,7 +4933,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5113,7 +5129,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5387,7 +5403,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5546,7 +5562,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5710,7 +5726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5883,7 +5899,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6027,7 +6043,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6157,7 +6173,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6285,7 +6301,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -6460,7 +6476,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6590,7 +6606,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6766,7 +6782,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6895,7 +6911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -7189,7 +7205,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7324,7 +7340,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7576,7 +7592,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7751,7 +7767,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7884,7 +7900,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -8585,7 +8601,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -8735,7 +8751,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9186,7 +9202,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9553,7 +9569,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9755,7 +9771,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9926,7 +9942,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10106,7 +10122,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10282,7 +10298,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10509,7 +10525,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10701,7 +10717,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10875,7 +10891,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11133,7 +11149,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11543,7 +11559,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11843,7 +11859,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -12699,7 +12715,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -12886,7 +12902,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13076,7 +13092,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13338,7 +13354,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13923,7 +13939,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14111,7 +14127,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14332,7 +14348,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14459,15 +14475,14 @@ spec: - external properties: external: - description: The KMSCryptoKeyRef selfLink, when not managed - by KCC. + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: The `name` field of a `KMSCryptoKeyRef` resource. + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: The `namespace` field of a `KMSCryptoKeyRef` - resource. + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object numNodes: @@ -14565,7 +14580,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14738,7 +14753,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15197,7 +15212,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15465,7 +15480,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15890,7 +15905,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -16331,7 +16346,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -16684,7 +16699,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -17505,7 +17520,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -17822,7 +17837,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18061,7 +18076,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18292,7 +18307,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18522,7 +18537,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20030,7 +20045,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20099,7 +20114,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -20282,6 +20297,9 @@ spec: of 16 bits, with an automatically determined IP within the peered VPC. If unspecified, a value of `/24` will be used. type: string + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf peeredNetworkRef: description: Immutable. The network definition that the workers are peered to. If this section is left empty, the workers @@ -20304,7 +20322,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -20314,6 +20332,9 @@ spec: resource. type: string type: object + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf type: object workerConfig: description: Machine configuration for the workers in the pool. @@ -20406,7 +20427,7 @@ spec: type: object type: array externalRef: - description: A unique specifier for the CloudBuild workerpool resource + description: A unique Config Connector specifier for the resource in GCP. type: string observedGeneration: @@ -20485,7 +20506,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20959,7 +20980,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -21391,7 +21412,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -21589,7 +21610,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -21856,7 +21877,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22251,7 +22272,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22430,7 +22451,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22692,7 +22713,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -23230,7 +23251,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23501,7 +23522,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23772,7 +23793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24227,7 +24248,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24497,7 +24518,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24711,7 +24732,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -25990,7 +26011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26204,7 +26225,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26381,7 +26402,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -27145,7 +27166,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -27296,7 +27317,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27516,7 +27537,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27708,7 +27729,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -28050,7 +28071,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -28428,7 +28449,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -28442,6 +28463,7 @@ spec: categories: - gcp kind: ComputeForwardingRule + listKind: ComputeForwardingRuleList plural: computeforwardingrules shortNames: - gcpcomputeforwardingrule @@ -28469,16 +28491,17 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: ComputeForwardingRule is the Schema for the compute API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object @@ -28519,9 +28542,8 @@ spec: whether the PSC endpoint can be accessed from another region. type: boolean backendServiceRef: - description: |- - A ComputeBackendService to receive the matched traffic. This is - used only for internal load balancing. + description: A ComputeBackendService to receive the matched traffic. + This is used only for internal load balancing. oneOf: - not: required: @@ -28538,20 +28560,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeBackendService` - resource.' + description: The ComputeBackendService selflink in the form "projects/{{project}}/global/backendServices/{{name}}" + or "projects/{{project}}/regions/{{region}}/backendServices/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeBackendService` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeBackendService` + resource. type: string type: object description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. + description: Immutable. An optional description of this resource. + Provide this property when you create the resource. type: string ipAddress: description: |- @@ -28574,11 +28597,6 @@ spec: forwarding rule. By default, if this field is empty, an ephemeral internal IP address will be automatically allocated from the IP range of the subnet or network configured for this forwarding rule. - oneOf: - - required: - - addressRef - - required: - - ip properties: addressRef: oneOf: @@ -28597,14 +28615,14 @@ spec: - external properties: external: - description: 'Allowed value: The `address` field of a `ComputeAddress` - resource.' + description: The ComputeAddress selflink in the form "projects/{{project}}/regions/{{region}}/addresses/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeAddress` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeAddress` resource. type: string type: object ip: @@ -28686,14 +28704,12 @@ spec: items: properties: name: - description: |- - Immutable. Name of the metadata label. The length must be between - 1 and 1024 characters, inclusive. + description: Immutable. Name of the metadata label. The + length must be between 1 and 1024 characters, inclusive. type: string value: - description: |- - Immutable. The value that the label must match. The value has a maximum - length of 1024 characters. + description: Immutable. The value that the label must + match. The value has a maximum length of 1024 characters. type: string required: - name @@ -28716,11 +28732,10 @@ spec: type: object type: array networkRef: - description: |- - This field is not used for external load balancing. For internal - load balancing, this field identifies the network that the load - balanced IP should belong to for this forwarding rule. If this - field is not specified, the default network will be used. + description: This field is not used for external load balancing. For + internal load balancing, this field identifies the network that + the load balanced IP should belong to for this forwarding rule. + If this field is not specified, the default network will be used. oneOf: - not: required: @@ -28737,14 +28752,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object networkTier: @@ -28778,7 +28793,6 @@ spec: [port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications) for details. - Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. @@ -28800,7 +28814,6 @@ spec: * By internal TCP/UDP load balancers, backend service-based network load balancers, internal protocol forwarding and when protocol is not L3_DEFAULT. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. Only packets addressed to these ports will be forwarded to the backends configured with this @@ -28891,37 +28904,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object target: - description: |- - The target resource to receive the matched traffic. The forwarded - traffic must be of a type appropriate to the target object. For - INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets + description: The target resource to receive the matched traffic. The + forwarded traffic must be of a type appropriate to the target object. + For INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets are valid. - oneOf: - - required: - - serviceAttachmentRef - - required: - - targetGRPCProxyRef - - required: - - targetHTTPProxyRef - - required: - - targetHTTPSProxyRef - - required: - - targetSSLProxyRef - - required: - - targetTCPProxyRef - - required: - - targetVPNGatewayRef properties: serviceAttachmentRef: oneOf: @@ -28940,14 +28937,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeServiceAttachment` - resource.' + description: The ComputeServiceAttachment selflink in the + form "projects/{{project}}/regions/{{region}}/serviceAttachments/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeServiceAttachment` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeServiceAttachment` + resource. type: string type: object targetGRPCProxyRef: @@ -28967,14 +28967,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetGRPCProxy` - resource.' + description: The ComputeTargetGrpcProxy selflink in the form + "projects/{{project}}/global/targetGrpcProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetGrpcProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetGrpcProxy` + resource. type: string type: object targetHTTPProxyRef: @@ -28994,14 +28997,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPProxy` - resource.' + description: The ComputeTargetHTTPProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPProxy` + resource. type: string type: object targetHTTPSProxyRef: @@ -29021,14 +29028,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPSProxy` - resource.' + description: The ComputeTargetHTTPSProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPSProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPSProxy` + resource. type: string type: object targetSSLProxyRef: @@ -29048,14 +29059,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetSSLProxy` - resource.' + description: The ComputeTargetSSLProxy selflink in the form + "projects/{{project}}/global/targetSslProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetSSLProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetSSLProxy` + resource. type: string type: object targetTCPProxyRef: @@ -29075,14 +29089,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetTCPProxy` - resource.' + description: The ComputeTargetTCPProxy selflink in the form + "projects/{{project}}/global/targetTcpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetTcpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetTCPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetTCPProxy` + resource. type: string type: object targetVPNGatewayRef: @@ -29102,14 +29120,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetVPNGateway` - resource.' + description: The ComputeTargetVPNGateway selflink in the form + "projects/{{project}}/regions/{{region}}/targetVpnGateways/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetVPNGateway` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetVPNGateway` + resource. type: string type: object type: object @@ -29126,8 +29147,8 @@ spec: if the current Forwarding Rule does not have sourceIPRanges specified.' type: string conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -29154,9 +29175,12 @@ spec: creationTimestamp: description: Creation timestamp in RFC3339 text format. type: string + externalRef: + description: A unique Config Connector specifier for the resource + in GCP. + type: string labelFingerprint: - description: |- - The fingerprint used for optimistic locking of this resource. Used + description: The fingerprint used for optimistic locking of this resource. Used internally during updates. type: string observedGeneration: @@ -29165,6 +29189,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer pscConnectionId: description: The PSC connection id of the PSC Forwarding Rule. @@ -29183,6 +29208,160 @@ spec: This field is only used for INTERNAL load balancing. type: string type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: alpha + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: computeglobalnetworkendpointgroups.compute.cnrm.cloud.google.com +spec: + group: compute.cnrm.cloud.google.com + names: + categories: + - gcp + kind: ComputeGlobalNetworkEndpointGroup + plural: computeglobalnetworkendpointgroups + shortNames: + - gcpcomputeglobalnetworkendpointgroup + - gcpcomputeglobalnetworkendpointgroups + singular: computeglobalnetworkendpointgroup + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + defaultPort: + description: |- + Immutable. The default port used if the port number is not specified in the + network endpoint. + type: integer + description: + description: |- + Immutable. An optional description of this resource. Provide this property when + you create the resource. + type: string + networkEndpointType: + description: 'Immutable. Type of network endpoints in this network + endpoint group. Possible values: ["INTERNET_IP_PORT", "INTERNET_FQDN_PORT"].' + type: string + projectRef: + description: The project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `Project` resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The name of the resource. Used for + creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + required: + - networkEndpointType + - projectRef + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + selfLink: + type: string + type: object required: - spec type: object @@ -29201,169 +29380,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: computeglobalnetworkendpointgroups.compute.cnrm.cloud.google.com -spec: - group: compute.cnrm.cloud.google.com - names: - categories: - - gcp - kind: ComputeGlobalNetworkEndpointGroup - plural: computeglobalnetworkendpointgroups - shortNames: - - gcpcomputeglobalnetworkendpointgroup - - gcpcomputeglobalnetworkendpointgroups - singular: computeglobalnetworkendpointgroup - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - defaultPort: - description: |- - Immutable. The default port used if the port number is not specified in the - network endpoint. - type: integer - description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. - type: string - networkEndpointType: - description: 'Immutable. Type of network endpoints in this network - endpoint group. Possible values: ["INTERNET_IP_PORT", "INTERNET_FQDN_PORT"].' - type: string - projectRef: - description: The project that this resource belongs to. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `name` field of a `Project` resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - resourceID: - description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. - type: string - required: - - networkEndpointType - - projectRef - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - selfLink: - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29521,7 +29538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29985,7 +30002,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30146,7 +30163,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30307,7 +30324,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30665,7 +30682,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -31444,7 +31461,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -31626,7 +31643,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -31829,7 +31846,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -32862,7 +32879,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -33894,7 +33911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34219,7 +34236,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34436,7 +34453,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34781,7 +34798,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34991,7 +35008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35203,7 +35220,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35374,7 +35391,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35580,7 +35597,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35968,7 +35985,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36149,7 +36166,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36349,7 +36366,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36523,7 +36540,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36813,7 +36830,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36994,7 +37011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37139,7 +37156,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37268,7 +37285,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37494,7 +37511,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -37894,7 +37911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38191,7 +38208,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38309,7 +38326,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38742,7 +38759,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38919,7 +38936,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39221,7 +39238,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39518,7 +39535,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39714,7 +39731,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39928,7 +39945,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40252,7 +40269,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40544,7 +40561,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41001,7 +41018,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41357,7 +41374,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41584,7 +41601,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41863,7 +41880,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42484,7 +42501,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -42831,7 +42848,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42937,7 +42954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43081,7 +43098,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43480,7 +43497,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43698,7 +43715,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43861,7 +43878,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44155,7 +44172,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44333,7 +44350,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44512,7 +44529,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44870,7 +44887,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45095,7 +45112,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45350,7 +45367,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45609,7 +45626,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45776,7 +45793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45937,7 +45954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48660,7 +48677,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48864,7 +48881,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -49236,7 +49253,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -49552,7 +49569,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -50141,7 +50158,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -50377,7 +50394,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -50728,7 +50745,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -52104,18 +52121,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect @@ -52604,7 +52620,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53308,18 +53324,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect @@ -53529,7 +53544,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53801,7 +53816,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53967,7 +53982,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54163,7 +54178,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54348,7 +54363,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54580,7 +54595,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54754,7 +54769,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54768,6 +54783,7 @@ spec: categories: - gcp kind: DataflowFlexTemplateJob + listKind: DataflowFlexTemplateJobList plural: dataflowflextemplatejobs shortNames: - gcpdataflowflextemplatejob @@ -54795,42 +54811,45 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: DataflowFlexTemplateJob is the Schema for the DataflowFlexTemplateJob + API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: + description: DataflowFlexTemplateJobSpec defines the desired state of + DataflowFlexTemplateJob properties: additionalExperiments: - description: List of experiments that should be used by the job. An - example value is ["enable_stackdriver_agent_metrics"]. + description: Additional experiment flags for the job. items: type: string type: array autoscalingAlgorithm: - description: The algorithm to use for autoscaling. + description: The algorithm to use for autoscaling type: string containerSpecGcsPath: + description: Cloud Storage path to a file with json serialized ContainerSpec + as content. type: string enableStreamingEngine: - description: Immutable. Indicates if the job should use the streaming - engine feature. + description: Whether to enable Streaming Engine for the job. type: boolean ipConfiguration: - description: The configuration for VM IPs. Options are "WORKER_IP_PUBLIC" - or "WORKER_IP_PRIVATE". + description: Configuration for VM IPs. type: string kmsKeyNameRef: - description: The name for the Cloud KMS key for the job. + description: The Cloud KMS key for the job. oneOf: - not: required: @@ -54847,14 +54866,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object launcherMachineType: @@ -54862,14 +54881,18 @@ spec: is n1-standard-1. type: string machineType: - description: The machine type to use for the job. + description: The machine type to use for the job. Defaults to the + value from the template if not specified. type: string maxWorkers: - description: Immutable. The maximum number of Google Compute Engine - instances to be made available to your pipeline during execution, - from 1 to 1000. + description: The maximum number of Google Compute Engine instances + to be made available to your pipeline during execution, from 1 to + 1000. + format: int32 type: integer networkRef: + description: Network to which VMs will be assigned. If empty or unspecified, + the service will use the network "default". oneOf: - not: required: @@ -54886,21 +54909,23 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object numWorkers: - description: Immutable. The initial number of Google Compute Engine - instances for the job. + description: The initial number of Google Compute Engine instances + for the job. + format: int32 type: integer parameters: + description: The parameters for FlexTemplate. Ex. {"num_workers":"5"} type: object x-kubernetes-preserve-unknown-fields: true region: @@ -54913,6 +54938,8 @@ spec: the SDK. Note this field is only valid for portable pipelines. type: string serviceAccountEmailRef: + description: The email address of the service account to run the job + as. oneOf: - not: required: @@ -54929,8 +54956,7 @@ spec: - external properties: external: - description: 'Allowed value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -54940,10 +54966,15 @@ spec: type: string type: object stagingLocation: - description: The Cloud Storage path to use for staging files. Must - be a valid Cloud Storage URL, beginning with gs://. + description: The Cloud Storage path for staging local files. Must + be a valid Cloud Storage URL, beginning with `gs://`. type: string subnetworkRef: + description: Subnetwork to which VMs will be assigned, if desired. + You can specify a subnetwork using either a complete URL or an abbreviated + path. Expected to be of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" + or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is + located in a Shared VPC network, you must use the complete URL. oneOf: - not: required: @@ -54960,34 +54991,36 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object tempLocation: description: The Cloud Storage path to use for temporary files. Must - be a valid Cloud Storage URL, beginning with gs://. + be a valid Cloud Storage URL, beginning with `gs://`. type: string transformNameMapping: - description: Only applicable when updating a pipeline. Map of transform - name prefixes of the job to be replaced with the corresponding name - prefixes of the new job. + description: Map of transform name prefixes of the job to be replaced + with the corresponding name prefixes of the new job. Only applicable + when updating a pipeline. type: object x-kubernetes-preserve-unknown-fields: true required: - containerSpecGcsPath type: object status: + description: DataflowFlexTemplateJobStatus defines the config connector + machine state of DataflowFlexTemplateJob properties: conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -55019,11 +55052,24 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer state: + description: |- + The current state of the job. + + Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise + specified. + + A job in the `JOB_STATE_RUNNING` state may asynchronously enter a + terminal state. After a job has reached a terminal state, no + further state updates may be made. + + This field may be mutated by the Cloud Dataflow service; + callers cannot mutate it. type: string type: - description: The type of this job, selected from the JobType enum. + description: The type of Cloud Dataflow job. type: string type: object required: @@ -55033,18 +55079,12 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -55330,7 +55370,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -55387,29 +55427,127 @@ spec: type: object spec: properties: + displayName: + description: Optional. The repository's user-friendly name. + type: string gitRemoteSettings: description: Optional. If set, configures this repository to be linked to a Git remote. properties: - authenticationTokenSecretVersion: + authenticationTokenSecretVersionRef: description: The name of the Secret Manager secret version to use as an authentication token for Git operations. Must be in the format projects/* /secrets/* /versions/*. - type: string + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object defaultBranch: description: The Git remote's default branch name. type: string - tokenStatus: - description: Indicates the status of the Git access token. https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories#TokenStatus. - type: string + sshAuthenticationConfig: + description: Authentication fields for remote uris using SSH protocol. + properties: + hostPublicKey: + description: Content of a public SSH key to verify an identity + of a remote Git host. + type: string + userPrivateKeySecretVersionRef: + description: The name of the Secret Manager secret version + to use as a ssh private key for Git operations. Must be + in the format projects/*/secrets/*/versions/* . + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object + required: + - hostPublicKey + - userPrivateKeySecretVersionRef + type: object url: description: The Git remote's URL. type: string required: - - authenticationTokenSecretVersion - defaultBranch - url type: object + npmrcEnvironmentVariablesSecretVersionRef: + description: Optional. The name of the Secret Manager secret version + to be used to interpolate variables into the .npmrc file for package + installation operations. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object projectRef: description: The project that this resource belongs to. oneOf: @@ -55450,6 +55588,39 @@ spec: creation and acquisition. When unset, the value of `metadata.name` is used as the default. type: string + serviceAccountRef: + description: Optional. The service account reference to run workflow + invocations under. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `email` field of an `IAMServiceAccount` resource. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + setAuthenticatedUserAdmin: + description: Optional. Input only. If set to true, the authenticated + user will be granted the roles/dataform.admin role on the created + repository. + type: boolean workspaceCompilationOverrides: description: Optional. If set, fields of workspaceCompilationOverrides override the default compilation settings that are specified in @@ -55500,6 +55671,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the DataformReposity resource + in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -55508,6 +55683,10 @@ spec: the resource. format: int64 type: integer + observedState: + description: ObservedState is the state of the resource as most recently + observed in GCP. + type: object type: object required: - spec @@ -55521,7 +55700,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -55800,7 +55979,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -56095,7 +56274,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -57910,7 +58089,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -59852,7 +60031,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60024,7 +60203,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60625,7 +60804,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60818,7 +60997,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61752,7 +61931,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61967,7 +62146,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62152,7 +62331,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62366,7 +62545,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62561,7 +62740,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -63111,7 +63290,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -63331,7 +63510,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64429,7 +64608,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64638,7 +64817,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64832,7 +65011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -65029,7 +65208,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -65266,7 +65445,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -69442,7 +69621,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -70054,7 +70233,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -71530,7 +71709,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -71901,7 +72080,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -72286,7 +72465,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -72482,7 +72661,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73454,7 +73633,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73633,7 +73812,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73829,7 +74008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73952,7 +74131,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74117,7 +74296,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74653,7 +74832,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74904,7 +75083,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75143,7 +75322,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75323,7 +75502,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75547,7 +75726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75689,7 +75868,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76235,7 +76414,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76457,7 +76636,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76786,7 +76965,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -76955,7 +77134,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77142,7 +77321,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77319,7 +77498,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77463,7 +77642,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77626,7 +77805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77778,7 +77957,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77926,7 +78105,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78073,7 +78252,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78227,7 +78406,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78440,7 +78619,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78737,7 +78916,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -78828,10 +79007,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -78925,10 +79102,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -78968,7 +79143,9 @@ spec: type: string type: object hierarchyController: - description: Hierarchy Controller configuration for the cluster. + description: 'Hierarchy Controller is no longer available. + Use https://github.com/kubernetes-sigs/hierarchical-namespaces + instead.' properties: enableHierarchicalResourceQuota: description: Whether hierarchical resource quota is enabled @@ -79280,7 +79457,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -79546,7 +79723,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -79911,7 +80088,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80044,7 +80221,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80202,7 +80379,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80364,7 +80541,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80678,7 +80855,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80879,7 +81056,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81080,7 +81257,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81241,7 +81418,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81381,7 +81558,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81706,7 +81883,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81934,7 +82111,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82174,7 +82351,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82353,7 +82530,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82495,7 +82672,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -82853,7 +83030,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83034,7 +83211,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83330,7 +83507,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83497,7 +83674,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83623,7 +83800,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83777,7 +83954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -84469,7 +84646,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84628,7 +84805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84833,7 +85010,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85016,7 +85193,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85240,7 +85417,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85404,7 +85581,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85617,7 +85794,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85834,7 +86011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85987,7 +86164,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86180,7 +86357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86369,7 +86546,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86549,7 +86726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86672,7 +86849,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86877,7 +87054,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -87166,7 +87343,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -87441,7 +87618,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -87897,7 +88074,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -88301,7 +88478,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -88605,7 +88782,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -88942,7 +89119,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -89118,7 +89295,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -90055,7 +90232,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -98130,7 +98307,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98321,7 +98498,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98616,7 +98793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98743,7 +98920,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -99044,7 +99221,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -99615,7 +99792,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -99774,7 +99951,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -100153,7 +100330,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -100335,7 +100512,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -100389,6 +100566,9 @@ spec: description: description: A description of this resource. type: string + location: + description: Immutable. Location of the resource. + type: string networkRef: description: 'The resource path of the consumer network. Example: - projects/{projectNumOrId}/global/networks/{resourceId}.' @@ -100409,7 +100589,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -100418,6 +100598,38 @@ spec: description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object pscConfig: description: Configuration used for Private Service Connect connections. Used when Infrastructure is PSC. @@ -100476,6 +100688,9 @@ spec: services have a prefix of gcp. For example, gcp-cloud-sql. 3rd party services do not. For example, test-service-a3dfcx. type: string + required: + - location + - projectRef type: object status: description: NetworkConnectivityServiceConnectionPolicyStatus defines @@ -100644,7 +100859,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101031,7 +101246,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -101306,7 +101521,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101564,7 +101779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101793,7 +102008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -102037,7 +102252,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -102274,7 +102489,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -102621,7 +102836,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -103528,7 +103743,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -103849,7 +104064,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -104075,7 +104290,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -104542,7 +104757,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105276,7 +105491,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105452,7 +105667,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105782,7 +105997,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -106103,7 +106318,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -106323,7 +106538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -106484,7 +106699,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -107253,7 +107468,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -108255,7 +108470,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -108946,7 +109161,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -109082,7 +109297,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -109585,7 +109800,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -110590,7 +110805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -111501,7 +111716,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -111917,7 +112132,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112142,7 +112357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112298,7 +112513,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112465,7 +112680,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112669,7 +112884,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112824,7 +113039,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113332,7 +113547,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113549,7 +113764,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -113803,7 +114018,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113865,6 +114080,9 @@ spec: description: Optional. The delete operation will fail when the value is set to true. type: boolean + location: + description: Immutable. Location of the resource. + type: string nodeType: description: Optional. The type of a redis node in the cluster. NodeType determines the underlying machine-type of a redis node. @@ -113897,6 +114115,38 @@ spec: type: string type: object type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object pscConfigs: description: Required. Each PscConfig configures the consumer network where IPs will be designated to the cluster for client access through @@ -113924,7 +114174,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -113934,6 +114184,8 @@ spec: resource. type: string type: object + required: + - networkRef type: object type: array redisConfigs: @@ -113973,6 +114225,9 @@ spec: MULTI_ZONE clusters. type: string type: object + required: + - location + - projectRef type: object status: description: RedisClusterStatus defines the config connector machine state @@ -114043,39 +114298,11 @@ spec: description: Output only. Customer configuration for where the endpoint is created and accessed from. properties: - networkRef: + network: description: Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: The compute network selflink of form - "projects//global/networks/", - when not managed by KCC. - type: string - name: - description: The `name` field of a `ComputeNetwork` - resource. - type: string - namespace: - description: The `namespace` field of a `ComputeNetwork` - resource. - type: string - type: object + type: string type: object type: object type: array @@ -114153,7 +114380,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114671,7 +114898,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114849,7 +115076,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115130,7 +115357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115717,6 +115944,49 @@ spec: description: A list of Volumes to make available to containers. items: properties: + cloudSqlInstance: + description: For Cloud SQL volumes, contains the specific + instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run + for more information on how to connect Cloud SQL and + Cloud Run. + properties: + instanceRefs: + items: + description: 'The Cloud SQL instance connection + names, as can be found in https://console.cloud.google.com/sql/instances. + Visit https://cloud.google.com/sql/docs/mysql/connect-run + for more information on how to connect Cloud + SQL and Cloud Run. Format: {project}:{location}:{instance}' + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `connectionName` + field of a `SQLInstance` resource.' + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More + info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + type: array + type: object emptyDir: description: Ephemeral storage used as a shared volume. properties: @@ -116132,7 +116402,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117262,7 +117532,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117602,7 +117872,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117818,7 +118088,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117859,7 +118129,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: SecureSourceManagerInstance is the Schema for the monitoring + description: SecureSourceManagerInstance is the Schema for the SecureSourceManagerInstance API properties: apiVersion: @@ -117875,16 +118145,13 @@ spec: metadata: type: object spec: + description: SecureSourceManagerInstanceSpec defines the desired state + of SecureSourceManagerInstance properties: kmsKey: description: Optional. Immutable. Customer-managed encryption key name, in the format projects/*/locations/*/keyRings/*/cryptoKeys/*. type: string - labels: - additionalProperties: - type: string - description: Optional. Labels as key value pairs. - type: object location: description: Immutable. Location of the instance. type: string @@ -117930,10 +118197,12 @@ spec: - projectRef type: object status: + description: SecureSourceManagerInstanceStatus defines the config connector + machine state of SecureSourceManagerInstance properties: conditions: description: Conditions represent the latest available observations - of the SecureSourceManagerInstance's current state. + of the object's current state. items: properties: lastTransitionTime: @@ -117957,6 +118226,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the SecureSourceManagerInstance + resource in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -117966,7 +118239,8 @@ spec: format: int64 type: integer observedState: - description: ObservedState is the latest GCP state. + description: ObservedState is the state of the resource as most recently + observed in GCP. properties: hostConfig: description: Output only. A list of hostnames for this instance. @@ -117975,10 +118249,10 @@ spec: description: 'Output only. API hostname. This is the hostname to use for **Host: Data Plane** endpoints.' type: string - gitHttp: + gitHTTP: description: Output only. Git HTTP hostname. type: string - gitSsh: + gitSSH: description: Output only. Git SSH hostname. type: string html: @@ -117994,8 +118268,6 @@ spec: type: string type: object type: object - required: - - spec type: object served: true storage: true @@ -118006,7 +118278,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118211,7 +118483,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118374,7 +118646,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118594,7 +118866,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118751,7 +119023,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118903,7 +119175,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119050,7 +119322,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119228,7 +119500,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119369,7 +119641,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119551,7 +119823,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119750,7 +120022,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119959,7 +120231,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120099,7 +120371,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120270,13 +120542,12 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" cnrm.cloud.google.com/stability-level: stable cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" name: sqlinstances.sql.cnrm.cloud.google.com spec: group: sql.cnrm.cloud.google.com @@ -120284,6 +120555,7 @@ spec: categories: - gcp kind: SQLInstance + listKind: SQLInstanceList plural: sqlinstances shortNames: - gcpsqlinstance @@ -120311,23 +120583,80 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: SQLInstance is the Schema for the sql API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: properties: + cloneSource: + description: Create this database as a clone of a source instance. + Immutable. + properties: + binLogCoordinates: + description: Binary log coordinates, if specified, identify the + position up to which the source instance is cloned. If not specified, + the source instance is cloned up to the most recent binary log + coordinates. + properties: + binLogFileName: + description: Name of the binary log file for a Cloud SQL instance. + type: string + binLogPosition: + description: Position (offset) within the binary log file. + format: int64 + type: integer + type: object + databaseNames: + description: (SQL Server only) Clone only the specified databases + from the source instance. Clone all databases if empty. + items: + type: string + type: array + pointInTime: + description: Timestamp, if specified, identifies the time to which + the source instance is cloned. + type: string + sqlInstanceRef: + description: The source SQLInstance to clone + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The SQLInstance selfLink, when not managed by + Config Connector. + type: string + name: + description: The `name` field of a `SQLInstance` resource. + type: string + namespace: + description: The `namespace` field of a `SQLInstance` resource. + type: string + type: object + type: object databaseVersion: - default: MYSQL_5_6 description: The MySQL, PostgreSQL or SQL Server (beta) version to use. Supported values include MYSQL_5_6, MYSQL_5_7, MYSQL_8_0, POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, POSTGRES_14, @@ -120352,14 +120681,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object instanceType: @@ -120386,14 +120715,14 @@ spec: - external properties: external: - description: 'Allowed value: The `name` field of a `SQLInstance` - resource.' + description: The SQLInstance selfLink, when not managed by Config + Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `SQLInstance` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `SQLInstance` resource. type: string type: object region: @@ -120423,6 +120752,7 @@ spec: connectRetryInterval: description: Immutable. The number of seconds between connect retries. MySQL's default is 60 seconds. + format: int64 type: integer dumpFilePath: description: Immutable. Path to a SQL file in Google Cloud Storage @@ -120437,20 +120767,10 @@ spec: type: boolean masterHeartbeatPeriod: description: Immutable. Time in ms between replication heartbeats. + format: int64 type: integer password: description: Immutable. Password for the replication connection. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -120472,8 +120792,8 @@ spec: from. type: string required: - - name - key + - name type: object type: object type: object @@ -120495,17 +120815,6 @@ spec: type: string rootPassword: description: Initial root password. Required for MS SQL Server. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -120526,8 +120835,8 @@ spec: description: Name of the Secret to extract a value from. type: string required: - - name - key + - name type: object type: object type: object @@ -120553,22 +120862,25 @@ spec: threadsPerCore: description: The number of threads per physical core. Can be 1 or 2. + format: int64 type: integer type: object authorizedGaeApplications: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. items: type: string type: array availabilityType: - description: |- - The availability type of the Cloud SQL instance, high availability - (REGIONAL) or single zone (ZONAL). For all instances, ensure that - settings.backup_configuration.enabled is set to true. - For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled is set to true. - For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled + description: The availability type of the Cloud SQL instance, + high availability (REGIONAL) or single zone (ZONAL). For all + instances, ensure that settings.backup_configuration.enabled + is set to true. For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled + is set to true. For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled is set to true. Defaults to ZONAL. type: string backupConfiguration: @@ -120577,6 +120889,7 @@ spec: properties: retainedBackups: description: Number of backups to retain. + format: int64 type: integer retentionUnit: description: The unit that 'retainedBackups' represents. @@ -120606,6 +120919,7 @@ spec: description: The number of days of transaction logs we retain for point in time restore, from 1-7. (For PostgreSQL Enterprise Plus instances, from 1 to 35.). + format: int64 type: integer type: object collation: @@ -120615,9 +120929,12 @@ spec: description: Specifies if connections must use Cloud SQL connectors. type: string crashSafeReplication: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: boolean dataCacheConfig: description: Data cache configurations. @@ -120674,11 +120991,13 @@ spec: description: The maximum size, in GB, to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. + format: int64 type: integer diskSize: description: The size of data disk, in GB. Size of a running instance cannot be reduced but can be increased. The minimum value is 10GB. + format: int64 type: integer diskType: description: 'Immutable. The type of data disk: PD_SSD or PD_HDD. @@ -120698,10 +121017,12 @@ spec: description: Number of query execution plans captured by Insights per minute for all queries combined. Between 0 and 20. Default to 5. + format: int64 type: integer queryStringLength: description: Maximum query length stored in bytes. Between 256 and 4500. Default to 1024. + format: int64 type: integer recordApplicationTags: description: True if Query Insights will record application @@ -120763,14 +121084,15 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a - `ComputeNetwork` resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` + resource. type: string type: object pscConfig: @@ -120823,9 +121145,11 @@ spec: properties: day: description: Day of week (1-7), starting on Monday. + format: int64 type: integer hour: description: Hour of day (0-23), ignored if day not set. + format: int64 type: integer updateTrack: description: Receive updates earlier (canary) or later (stable). @@ -120844,6 +121168,7 @@ spec: type: boolean minLength: description: Minimum number of characters allowed. + format: int64 type: integer passwordChangeInterval: description: Minimum interval after which the password can @@ -120851,6 +121176,7 @@ spec: type: string reuseInterval: description: Number of previous passwords that cannot be reused. + format: int64 type: integer required: - enablePasswordPolicy @@ -120859,9 +121185,12 @@ spec: description: Pricing plan for this instance, can only be PER_USE. type: string replicationType: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: string sqlServerAuditConfig: properties: @@ -120883,14 +121212,15 @@ spec: - external properties: external: - description: 'Allowed value: The `url` field of a `StorageBucket` - resource.' + description: The StorageBucket selfLink, when not managed + by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `StorageBucket` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `StorageBucket` + resource. type: string type: object retentionInterval: @@ -120930,8 +121260,8 @@ spec: type: string type: array conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the SQLInstance's current state. items: properties: lastTransitionTime: @@ -120985,6 +121315,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer privateIpAddress: type: string @@ -121026,18 +121357,12 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121213,7 +121538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121454,7 +121779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121624,7 +121949,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122031,7 +122356,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122217,7 +122542,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122385,7 +122710,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122588,7 +122913,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122750,7 +123075,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123388,7 +123713,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123571,7 +123896,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123748,7 +124073,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123913,7 +124238,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124087,7 +124412,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124307,7 +124632,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124694,7 +125019,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125141,7 +125466,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125286,7 +125611,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125522,7 +125847,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125737,7 +126062,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125925,7 +126250,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126435,7 +126760,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126617,7 +126942,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126807,7 +127132,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -127086,7 +127411,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -127278,7 +127603,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/install-bundles/install-bundle-autopilot-namespaced/0-cnrm-system.yaml b/install-bundles/install-bundle-autopilot-namespaced/0-cnrm-system.yaml index 695a1c524b..b9ed7daf10 100644 --- a/install-bundles/install-bundle-autopilot-namespaced/0-cnrm-system.yaml +++ b/install-bundles/install-bundle-autopilot-namespaced/0-cnrm-system.yaml @@ -16,7 +16,7 @@ apiVersion: v1 kind: Namespace metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-system @@ -25,7 +25,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -35,7 +35,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-resource-stats-recorder @@ -45,7 +45,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-unmanaged-detector @@ -55,7 +55,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-manager @@ -65,7 +65,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-cnrm-system-role @@ -86,7 +86,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-cnrm-system-role @@ -107,7 +107,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -1284,7 +1284,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role @@ -1334,7 +1334,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-cluster-role @@ -1392,7 +1392,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-ns-role @@ -1417,7 +1417,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-role @@ -1447,7 +1447,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-unmanaged-detector-cluster-role @@ -1478,7 +1478,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -2266,7 +2266,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role @@ -2329,7 +2329,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role-binding @@ -2347,7 +2347,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role-binding @@ -2365,7 +2365,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-admin-binding @@ -2388,7 +2388,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-binding @@ -2405,7 +2405,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-binding @@ -2422,7 +2422,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-unmanaged-detector-binding @@ -2439,7 +2439,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-binding @@ -2456,7 +2456,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -2473,7 +2473,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "48797" prometheus.io/scrape: "true" labels: @@ -2494,7 +2494,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2512,7 +2512,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2525,8 +2525,8 @@ spec: - /configconnector/recorder env: - name: CONFIG_CONNECTOR_VERSION - value: 1.121.0 - image: gcr.io/cnrm-eap/recorder:4fd3fd6 + value: 1.122.0 + image: gcr.io/cnrm-eap/recorder:e373e18 imagePullPolicy: Always name: recorder ports: @@ -2560,7 +2560,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2575,7 +2575,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2590,7 +2590,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: gcr.io/cnrm-eap/webhook:4fd3fd6 + image: gcr.io/cnrm-eap/webhook:e373e18 imagePullPolicy: Always name: webhook ports: @@ -2620,7 +2620,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2635,7 +2635,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2643,7 +2643,7 @@ spec: containers: - command: - /configconnector/deletiondefender - image: gcr.io/cnrm-eap/deletiondefender:4fd3fd6 + image: gcr.io/cnrm-eap/deletiondefender:e373e18 imagePullPolicy: Always name: deletiondefender ports: @@ -2673,7 +2673,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-unmanaged-detector cnrm.cloud.google.com/system: "true" @@ -2688,7 +2688,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-unmanaged-detector cnrm.cloud.google.com/system: "true" @@ -2696,7 +2696,7 @@ spec: containers: - command: - /configconnector/unmanageddetector - image: gcr.io/cnrm-eap/unmanageddetector:4fd3fd6 + image: gcr.io/cnrm-eap/unmanageddetector:e373e18 imagePullPolicy: Always name: unmanageddetector ports: @@ -2727,7 +2727,7 @@ kind: HorizontalPodAutoscaler metadata: annotations: autoscaling.alpha.kubernetes.io/metrics: '[{"type":"Resource","resource":{"name":"memory","targetAverageUtilization":70}}]' - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook diff --git a/install-bundles/install-bundle-autopilot-namespaced/crds.yaml b/install-bundles/install-bundle-autopilot-namespaced/crds.yaml index 1413d71107..13f5a24abc 100644 --- a/install-bundles/install-bundle-autopilot-namespaced/crds.yaml +++ b/install-bundles/install-bundle-autopilot-namespaced/crds.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -264,7 +264,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -650,7 +650,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -780,7 +780,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -949,7 +949,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -1262,7 +1262,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -2456,7 +2456,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -2895,7 +2895,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -3617,6 +3617,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -4328,6 +4336,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -4350,7 +4366,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -4917,7 +4933,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5113,7 +5129,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5387,7 +5403,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5546,7 +5562,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5710,7 +5726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5883,7 +5899,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6027,7 +6043,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6157,7 +6173,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6285,7 +6301,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -6460,7 +6476,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6590,7 +6606,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6766,7 +6782,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6895,7 +6911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -7189,7 +7205,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7324,7 +7340,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7576,7 +7592,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7751,7 +7767,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7884,7 +7900,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -8585,7 +8601,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -8735,7 +8751,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9186,7 +9202,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9553,7 +9569,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9755,7 +9771,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9926,7 +9942,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10106,7 +10122,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10282,7 +10298,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10509,7 +10525,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10701,7 +10717,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10875,7 +10891,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11133,7 +11149,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11543,7 +11559,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11843,7 +11859,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -12699,7 +12715,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -12886,7 +12902,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13076,7 +13092,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13338,7 +13354,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13923,7 +13939,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14111,7 +14127,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14332,7 +14348,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14459,15 +14475,14 @@ spec: - external properties: external: - description: The KMSCryptoKeyRef selfLink, when not managed - by KCC. + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: The `name` field of a `KMSCryptoKeyRef` resource. + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: The `namespace` field of a `KMSCryptoKeyRef` - resource. + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object numNodes: @@ -14565,7 +14580,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14738,7 +14753,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15197,7 +15212,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15465,7 +15480,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15890,7 +15905,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -16331,7 +16346,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -16684,7 +16699,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -17505,7 +17520,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -17822,7 +17837,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18061,7 +18076,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18292,7 +18307,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18522,7 +18537,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20030,7 +20045,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20099,7 +20114,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -20282,6 +20297,9 @@ spec: of 16 bits, with an automatically determined IP within the peered VPC. If unspecified, a value of `/24` will be used. type: string + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf peeredNetworkRef: description: Immutable. The network definition that the workers are peered to. If this section is left empty, the workers @@ -20304,7 +20322,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -20314,6 +20332,9 @@ spec: resource. type: string type: object + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf type: object workerConfig: description: Machine configuration for the workers in the pool. @@ -20406,7 +20427,7 @@ spec: type: object type: array externalRef: - description: A unique specifier for the CloudBuild workerpool resource + description: A unique Config Connector specifier for the resource in GCP. type: string observedGeneration: @@ -20485,7 +20506,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20959,7 +20980,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -21391,7 +21412,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -21589,7 +21610,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -21856,7 +21877,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22251,7 +22272,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22430,7 +22451,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22692,7 +22713,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -23230,7 +23251,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23501,7 +23522,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23772,7 +23793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24227,7 +24248,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24497,7 +24518,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24711,7 +24732,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -25990,7 +26011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26204,7 +26225,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26381,7 +26402,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -27145,7 +27166,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -27296,7 +27317,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27516,7 +27537,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27708,7 +27729,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -28050,7 +28071,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -28428,7 +28449,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -28442,6 +28463,7 @@ spec: categories: - gcp kind: ComputeForwardingRule + listKind: ComputeForwardingRuleList plural: computeforwardingrules shortNames: - gcpcomputeforwardingrule @@ -28469,16 +28491,17 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: ComputeForwardingRule is the Schema for the compute API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object @@ -28519,9 +28542,8 @@ spec: whether the PSC endpoint can be accessed from another region. type: boolean backendServiceRef: - description: |- - A ComputeBackendService to receive the matched traffic. This is - used only for internal load balancing. + description: A ComputeBackendService to receive the matched traffic. + This is used only for internal load balancing. oneOf: - not: required: @@ -28538,20 +28560,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeBackendService` - resource.' + description: The ComputeBackendService selflink in the form "projects/{{project}}/global/backendServices/{{name}}" + or "projects/{{project}}/regions/{{region}}/backendServices/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeBackendService` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeBackendService` + resource. type: string type: object description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. + description: Immutable. An optional description of this resource. + Provide this property when you create the resource. type: string ipAddress: description: |- @@ -28574,11 +28597,6 @@ spec: forwarding rule. By default, if this field is empty, an ephemeral internal IP address will be automatically allocated from the IP range of the subnet or network configured for this forwarding rule. - oneOf: - - required: - - addressRef - - required: - - ip properties: addressRef: oneOf: @@ -28597,14 +28615,14 @@ spec: - external properties: external: - description: 'Allowed value: The `address` field of a `ComputeAddress` - resource.' + description: The ComputeAddress selflink in the form "projects/{{project}}/regions/{{region}}/addresses/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeAddress` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeAddress` resource. type: string type: object ip: @@ -28686,14 +28704,12 @@ spec: items: properties: name: - description: |- - Immutable. Name of the metadata label. The length must be between - 1 and 1024 characters, inclusive. + description: Immutable. Name of the metadata label. The + length must be between 1 and 1024 characters, inclusive. type: string value: - description: |- - Immutable. The value that the label must match. The value has a maximum - length of 1024 characters. + description: Immutable. The value that the label must + match. The value has a maximum length of 1024 characters. type: string required: - name @@ -28716,11 +28732,10 @@ spec: type: object type: array networkRef: - description: |- - This field is not used for external load balancing. For internal - load balancing, this field identifies the network that the load - balanced IP should belong to for this forwarding rule. If this - field is not specified, the default network will be used. + description: This field is not used for external load balancing. For + internal load balancing, this field identifies the network that + the load balanced IP should belong to for this forwarding rule. + If this field is not specified, the default network will be used. oneOf: - not: required: @@ -28737,14 +28752,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object networkTier: @@ -28778,7 +28793,6 @@ spec: [port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications) for details. - Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. @@ -28800,7 +28814,6 @@ spec: * By internal TCP/UDP load balancers, backend service-based network load balancers, internal protocol forwarding and when protocol is not L3_DEFAULT. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. Only packets addressed to these ports will be forwarded to the backends configured with this @@ -28891,37 +28904,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object target: - description: |- - The target resource to receive the matched traffic. The forwarded - traffic must be of a type appropriate to the target object. For - INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets + description: The target resource to receive the matched traffic. The + forwarded traffic must be of a type appropriate to the target object. + For INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets are valid. - oneOf: - - required: - - serviceAttachmentRef - - required: - - targetGRPCProxyRef - - required: - - targetHTTPProxyRef - - required: - - targetHTTPSProxyRef - - required: - - targetSSLProxyRef - - required: - - targetTCPProxyRef - - required: - - targetVPNGatewayRef properties: serviceAttachmentRef: oneOf: @@ -28940,14 +28937,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeServiceAttachment` - resource.' + description: The ComputeServiceAttachment selflink in the + form "projects/{{project}}/regions/{{region}}/serviceAttachments/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeServiceAttachment` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeServiceAttachment` + resource. type: string type: object targetGRPCProxyRef: @@ -28967,14 +28967,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetGRPCProxy` - resource.' + description: The ComputeTargetGrpcProxy selflink in the form + "projects/{{project}}/global/targetGrpcProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetGrpcProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetGrpcProxy` + resource. type: string type: object targetHTTPProxyRef: @@ -28994,14 +28997,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPProxy` - resource.' + description: The ComputeTargetHTTPProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPProxy` + resource. type: string type: object targetHTTPSProxyRef: @@ -29021,14 +29028,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPSProxy` - resource.' + description: The ComputeTargetHTTPSProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPSProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPSProxy` + resource. type: string type: object targetSSLProxyRef: @@ -29048,14 +29059,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetSSLProxy` - resource.' + description: The ComputeTargetSSLProxy selflink in the form + "projects/{{project}}/global/targetSslProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetSSLProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetSSLProxy` + resource. type: string type: object targetTCPProxyRef: @@ -29075,14 +29089,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetTCPProxy` - resource.' + description: The ComputeTargetTCPProxy selflink in the form + "projects/{{project}}/global/targetTcpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetTcpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetTCPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetTCPProxy` + resource. type: string type: object targetVPNGatewayRef: @@ -29102,14 +29120,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetVPNGateway` - resource.' + description: The ComputeTargetVPNGateway selflink in the form + "projects/{{project}}/regions/{{region}}/targetVpnGateways/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetVPNGateway` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetVPNGateway` + resource. type: string type: object type: object @@ -29126,8 +29147,8 @@ spec: if the current Forwarding Rule does not have sourceIPRanges specified.' type: string conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -29154,9 +29175,12 @@ spec: creationTimestamp: description: Creation timestamp in RFC3339 text format. type: string + externalRef: + description: A unique Config Connector specifier for the resource + in GCP. + type: string labelFingerprint: - description: |- - The fingerprint used for optimistic locking of this resource. Used + description: The fingerprint used for optimistic locking of this resource. Used internally during updates. type: string observedGeneration: @@ -29165,6 +29189,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer pscConnectionId: description: The PSC connection id of the PSC Forwarding Rule. @@ -29183,6 +29208,160 @@ spec: This field is only used for INTERNAL load balancing. type: string type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: alpha + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: computeglobalnetworkendpointgroups.compute.cnrm.cloud.google.com +spec: + group: compute.cnrm.cloud.google.com + names: + categories: + - gcp + kind: ComputeGlobalNetworkEndpointGroup + plural: computeglobalnetworkendpointgroups + shortNames: + - gcpcomputeglobalnetworkendpointgroup + - gcpcomputeglobalnetworkendpointgroups + singular: computeglobalnetworkendpointgroup + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + defaultPort: + description: |- + Immutable. The default port used if the port number is not specified in the + network endpoint. + type: integer + description: + description: |- + Immutable. An optional description of this resource. Provide this property when + you create the resource. + type: string + networkEndpointType: + description: 'Immutable. Type of network endpoints in this network + endpoint group. Possible values: ["INTERNET_IP_PORT", "INTERNET_FQDN_PORT"].' + type: string + projectRef: + description: The project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `Project` resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The name of the resource. Used for + creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + required: + - networkEndpointType + - projectRef + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + selfLink: + type: string + type: object required: - spec type: object @@ -29201,169 +29380,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: computeglobalnetworkendpointgroups.compute.cnrm.cloud.google.com -spec: - group: compute.cnrm.cloud.google.com - names: - categories: - - gcp - kind: ComputeGlobalNetworkEndpointGroup - plural: computeglobalnetworkendpointgroups - shortNames: - - gcpcomputeglobalnetworkendpointgroup - - gcpcomputeglobalnetworkendpointgroups - singular: computeglobalnetworkendpointgroup - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - defaultPort: - description: |- - Immutable. The default port used if the port number is not specified in the - network endpoint. - type: integer - description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. - type: string - networkEndpointType: - description: 'Immutable. Type of network endpoints in this network - endpoint group. Possible values: ["INTERNET_IP_PORT", "INTERNET_FQDN_PORT"].' - type: string - projectRef: - description: The project that this resource belongs to. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `name` field of a `Project` resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - resourceID: - description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. - type: string - required: - - networkEndpointType - - projectRef - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - selfLink: - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29521,7 +29538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29985,7 +30002,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30146,7 +30163,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30307,7 +30324,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30665,7 +30682,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -31444,7 +31461,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -31626,7 +31643,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -31829,7 +31846,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -32862,7 +32879,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -33894,7 +33911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34219,7 +34236,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34436,7 +34453,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34781,7 +34798,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34991,7 +35008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35203,7 +35220,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35374,7 +35391,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35580,7 +35597,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35968,7 +35985,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36149,7 +36166,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36349,7 +36366,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36523,7 +36540,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36813,7 +36830,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36994,7 +37011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37139,7 +37156,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37268,7 +37285,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37494,7 +37511,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -37894,7 +37911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38191,7 +38208,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38309,7 +38326,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38742,7 +38759,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38919,7 +38936,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39221,7 +39238,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39518,7 +39535,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39714,7 +39731,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39928,7 +39945,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40252,7 +40269,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40544,7 +40561,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41001,7 +41018,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41357,7 +41374,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41584,7 +41601,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41863,7 +41880,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42484,7 +42501,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -42831,7 +42848,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42937,7 +42954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43081,7 +43098,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43480,7 +43497,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43698,7 +43715,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43861,7 +43878,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44155,7 +44172,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44333,7 +44350,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44512,7 +44529,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44870,7 +44887,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45095,7 +45112,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45350,7 +45367,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45609,7 +45626,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45776,7 +45793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45937,7 +45954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48660,7 +48677,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48864,7 +48881,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -49236,7 +49253,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -49552,7 +49569,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -50141,7 +50158,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -50377,7 +50394,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -50728,7 +50745,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -52104,18 +52121,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect @@ -52604,7 +52620,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53308,18 +53324,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect @@ -53529,7 +53544,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53801,7 +53816,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53967,7 +53982,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54163,7 +54178,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54348,7 +54363,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54580,7 +54595,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54754,7 +54769,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54768,6 +54783,7 @@ spec: categories: - gcp kind: DataflowFlexTemplateJob + listKind: DataflowFlexTemplateJobList plural: dataflowflextemplatejobs shortNames: - gcpdataflowflextemplatejob @@ -54795,42 +54811,45 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: DataflowFlexTemplateJob is the Schema for the DataflowFlexTemplateJob + API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: + description: DataflowFlexTemplateJobSpec defines the desired state of + DataflowFlexTemplateJob properties: additionalExperiments: - description: List of experiments that should be used by the job. An - example value is ["enable_stackdriver_agent_metrics"]. + description: Additional experiment flags for the job. items: type: string type: array autoscalingAlgorithm: - description: The algorithm to use for autoscaling. + description: The algorithm to use for autoscaling type: string containerSpecGcsPath: + description: Cloud Storage path to a file with json serialized ContainerSpec + as content. type: string enableStreamingEngine: - description: Immutable. Indicates if the job should use the streaming - engine feature. + description: Whether to enable Streaming Engine for the job. type: boolean ipConfiguration: - description: The configuration for VM IPs. Options are "WORKER_IP_PUBLIC" - or "WORKER_IP_PRIVATE". + description: Configuration for VM IPs. type: string kmsKeyNameRef: - description: The name for the Cloud KMS key for the job. + description: The Cloud KMS key for the job. oneOf: - not: required: @@ -54847,14 +54866,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object launcherMachineType: @@ -54862,14 +54881,18 @@ spec: is n1-standard-1. type: string machineType: - description: The machine type to use for the job. + description: The machine type to use for the job. Defaults to the + value from the template if not specified. type: string maxWorkers: - description: Immutable. The maximum number of Google Compute Engine - instances to be made available to your pipeline during execution, - from 1 to 1000. + description: The maximum number of Google Compute Engine instances + to be made available to your pipeline during execution, from 1 to + 1000. + format: int32 type: integer networkRef: + description: Network to which VMs will be assigned. If empty or unspecified, + the service will use the network "default". oneOf: - not: required: @@ -54886,21 +54909,23 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object numWorkers: - description: Immutable. The initial number of Google Compute Engine - instances for the job. + description: The initial number of Google Compute Engine instances + for the job. + format: int32 type: integer parameters: + description: The parameters for FlexTemplate. Ex. {"num_workers":"5"} type: object x-kubernetes-preserve-unknown-fields: true region: @@ -54913,6 +54938,8 @@ spec: the SDK. Note this field is only valid for portable pipelines. type: string serviceAccountEmailRef: + description: The email address of the service account to run the job + as. oneOf: - not: required: @@ -54929,8 +54956,7 @@ spec: - external properties: external: - description: 'Allowed value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -54940,10 +54966,15 @@ spec: type: string type: object stagingLocation: - description: The Cloud Storage path to use for staging files. Must - be a valid Cloud Storage URL, beginning with gs://. + description: The Cloud Storage path for staging local files. Must + be a valid Cloud Storage URL, beginning with `gs://`. type: string subnetworkRef: + description: Subnetwork to which VMs will be assigned, if desired. + You can specify a subnetwork using either a complete URL or an abbreviated + path. Expected to be of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" + or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is + located in a Shared VPC network, you must use the complete URL. oneOf: - not: required: @@ -54960,34 +54991,36 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object tempLocation: description: The Cloud Storage path to use for temporary files. Must - be a valid Cloud Storage URL, beginning with gs://. + be a valid Cloud Storage URL, beginning with `gs://`. type: string transformNameMapping: - description: Only applicable when updating a pipeline. Map of transform - name prefixes of the job to be replaced with the corresponding name - prefixes of the new job. + description: Map of transform name prefixes of the job to be replaced + with the corresponding name prefixes of the new job. Only applicable + when updating a pipeline. type: object x-kubernetes-preserve-unknown-fields: true required: - containerSpecGcsPath type: object status: + description: DataflowFlexTemplateJobStatus defines the config connector + machine state of DataflowFlexTemplateJob properties: conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -55019,11 +55052,24 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer state: + description: |- + The current state of the job. + + Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise + specified. + + A job in the `JOB_STATE_RUNNING` state may asynchronously enter a + terminal state. After a job has reached a terminal state, no + further state updates may be made. + + This field may be mutated by the Cloud Dataflow service; + callers cannot mutate it. type: string type: - description: The type of this job, selected from the JobType enum. + description: The type of Cloud Dataflow job. type: string type: object required: @@ -55033,18 +55079,12 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -55330,7 +55370,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -55387,29 +55427,127 @@ spec: type: object spec: properties: + displayName: + description: Optional. The repository's user-friendly name. + type: string gitRemoteSettings: description: Optional. If set, configures this repository to be linked to a Git remote. properties: - authenticationTokenSecretVersion: + authenticationTokenSecretVersionRef: description: The name of the Secret Manager secret version to use as an authentication token for Git operations. Must be in the format projects/* /secrets/* /versions/*. - type: string + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object defaultBranch: description: The Git remote's default branch name. type: string - tokenStatus: - description: Indicates the status of the Git access token. https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories#TokenStatus. - type: string + sshAuthenticationConfig: + description: Authentication fields for remote uris using SSH protocol. + properties: + hostPublicKey: + description: Content of a public SSH key to verify an identity + of a remote Git host. + type: string + userPrivateKeySecretVersionRef: + description: The name of the Secret Manager secret version + to use as a ssh private key for Git operations. Must be + in the format projects/*/secrets/*/versions/* . + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object + required: + - hostPublicKey + - userPrivateKeySecretVersionRef + type: object url: description: The Git remote's URL. type: string required: - - authenticationTokenSecretVersion - defaultBranch - url type: object + npmrcEnvironmentVariablesSecretVersionRef: + description: Optional. The name of the Secret Manager secret version + to be used to interpolate variables into the .npmrc file for package + installation operations. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object projectRef: description: The project that this resource belongs to. oneOf: @@ -55450,6 +55588,39 @@ spec: creation and acquisition. When unset, the value of `metadata.name` is used as the default. type: string + serviceAccountRef: + description: Optional. The service account reference to run workflow + invocations under. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `email` field of an `IAMServiceAccount` resource. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + setAuthenticatedUserAdmin: + description: Optional. Input only. If set to true, the authenticated + user will be granted the roles/dataform.admin role on the created + repository. + type: boolean workspaceCompilationOverrides: description: Optional. If set, fields of workspaceCompilationOverrides override the default compilation settings that are specified in @@ -55500,6 +55671,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the DataformReposity resource + in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -55508,6 +55683,10 @@ spec: the resource. format: int64 type: integer + observedState: + description: ObservedState is the state of the resource as most recently + observed in GCP. + type: object type: object required: - spec @@ -55521,7 +55700,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -55800,7 +55979,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -56095,7 +56274,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -57910,7 +58089,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -59852,7 +60031,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60024,7 +60203,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60625,7 +60804,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60818,7 +60997,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61752,7 +61931,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61967,7 +62146,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62152,7 +62331,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62366,7 +62545,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62561,7 +62740,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -63111,7 +63290,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -63331,7 +63510,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64429,7 +64608,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64638,7 +64817,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64832,7 +65011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -65029,7 +65208,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -65266,7 +65445,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -69442,7 +69621,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -70054,7 +70233,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -71530,7 +71709,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -71901,7 +72080,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -72286,7 +72465,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -72482,7 +72661,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73454,7 +73633,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73633,7 +73812,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73829,7 +74008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73952,7 +74131,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74117,7 +74296,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74653,7 +74832,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74904,7 +75083,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75143,7 +75322,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75323,7 +75502,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75547,7 +75726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75689,7 +75868,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76235,7 +76414,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76457,7 +76636,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76786,7 +76965,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -76955,7 +77134,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77142,7 +77321,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77319,7 +77498,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77463,7 +77642,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77626,7 +77805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77778,7 +77957,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77926,7 +78105,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78073,7 +78252,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78227,7 +78406,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78440,7 +78619,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78737,7 +78916,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -78828,10 +79007,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -78925,10 +79102,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -78968,7 +79143,9 @@ spec: type: string type: object hierarchyController: - description: Hierarchy Controller configuration for the cluster. + description: 'Hierarchy Controller is no longer available. + Use https://github.com/kubernetes-sigs/hierarchical-namespaces + instead.' properties: enableHierarchicalResourceQuota: description: Whether hierarchical resource quota is enabled @@ -79280,7 +79457,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -79546,7 +79723,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -79911,7 +80088,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80044,7 +80221,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80202,7 +80379,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80364,7 +80541,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80678,7 +80855,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80879,7 +81056,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81080,7 +81257,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81241,7 +81418,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81381,7 +81558,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81706,7 +81883,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81934,7 +82111,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82174,7 +82351,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82353,7 +82530,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82495,7 +82672,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -82853,7 +83030,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83034,7 +83211,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83330,7 +83507,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83497,7 +83674,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83623,7 +83800,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83777,7 +83954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -84469,7 +84646,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84628,7 +84805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84833,7 +85010,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85016,7 +85193,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85240,7 +85417,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85404,7 +85581,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85617,7 +85794,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85834,7 +86011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85987,7 +86164,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86180,7 +86357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86369,7 +86546,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86549,7 +86726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86672,7 +86849,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86877,7 +87054,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -87166,7 +87343,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -87441,7 +87618,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -87897,7 +88074,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -88301,7 +88478,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -88605,7 +88782,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -88942,7 +89119,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -89118,7 +89295,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -90055,7 +90232,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -98130,7 +98307,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98321,7 +98498,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98616,7 +98793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98743,7 +98920,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -99044,7 +99221,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -99615,7 +99792,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -99774,7 +99951,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -100153,7 +100330,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -100335,7 +100512,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -100389,6 +100566,9 @@ spec: description: description: A description of this resource. type: string + location: + description: Immutable. Location of the resource. + type: string networkRef: description: 'The resource path of the consumer network. Example: - projects/{projectNumOrId}/global/networks/{resourceId}.' @@ -100409,7 +100589,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -100418,6 +100598,38 @@ spec: description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object pscConfig: description: Configuration used for Private Service Connect connections. Used when Infrastructure is PSC. @@ -100476,6 +100688,9 @@ spec: services have a prefix of gcp. For example, gcp-cloud-sql. 3rd party services do not. For example, test-service-a3dfcx. type: string + required: + - location + - projectRef type: object status: description: NetworkConnectivityServiceConnectionPolicyStatus defines @@ -100644,7 +100859,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101031,7 +101246,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -101306,7 +101521,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101564,7 +101779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101793,7 +102008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -102037,7 +102252,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -102274,7 +102489,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -102621,7 +102836,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -103528,7 +103743,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -103849,7 +104064,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -104075,7 +104290,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -104542,7 +104757,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105276,7 +105491,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105452,7 +105667,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105782,7 +105997,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -106103,7 +106318,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -106323,7 +106538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -106484,7 +106699,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -107253,7 +107468,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -108255,7 +108470,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -108946,7 +109161,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -109082,7 +109297,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -109585,7 +109800,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -110590,7 +110805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -111501,7 +111716,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -111917,7 +112132,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112142,7 +112357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112298,7 +112513,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112465,7 +112680,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112669,7 +112884,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112824,7 +113039,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113332,7 +113547,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113549,7 +113764,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -113803,7 +114018,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113865,6 +114080,9 @@ spec: description: Optional. The delete operation will fail when the value is set to true. type: boolean + location: + description: Immutable. Location of the resource. + type: string nodeType: description: Optional. The type of a redis node in the cluster. NodeType determines the underlying machine-type of a redis node. @@ -113897,6 +114115,38 @@ spec: type: string type: object type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object pscConfigs: description: Required. Each PscConfig configures the consumer network where IPs will be designated to the cluster for client access through @@ -113924,7 +114174,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -113934,6 +114184,8 @@ spec: resource. type: string type: object + required: + - networkRef type: object type: array redisConfigs: @@ -113973,6 +114225,9 @@ spec: MULTI_ZONE clusters. type: string type: object + required: + - location + - projectRef type: object status: description: RedisClusterStatus defines the config connector machine state @@ -114043,39 +114298,11 @@ spec: description: Output only. Customer configuration for where the endpoint is created and accessed from. properties: - networkRef: + network: description: Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: The compute network selflink of form - "projects//global/networks/", - when not managed by KCC. - type: string - name: - description: The `name` field of a `ComputeNetwork` - resource. - type: string - namespace: - description: The `namespace` field of a `ComputeNetwork` - resource. - type: string - type: object + type: string type: object type: object type: array @@ -114153,7 +114380,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114671,7 +114898,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114849,7 +115076,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115130,7 +115357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115717,6 +115944,49 @@ spec: description: A list of Volumes to make available to containers. items: properties: + cloudSqlInstance: + description: For Cloud SQL volumes, contains the specific + instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run + for more information on how to connect Cloud SQL and + Cloud Run. + properties: + instanceRefs: + items: + description: 'The Cloud SQL instance connection + names, as can be found in https://console.cloud.google.com/sql/instances. + Visit https://cloud.google.com/sql/docs/mysql/connect-run + for more information on how to connect Cloud + SQL and Cloud Run. Format: {project}:{location}:{instance}' + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `connectionName` + field of a `SQLInstance` resource.' + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More + info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + type: array + type: object emptyDir: description: Ephemeral storage used as a shared volume. properties: @@ -116132,7 +116402,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117262,7 +117532,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117602,7 +117872,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117818,7 +118088,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117859,7 +118129,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: SecureSourceManagerInstance is the Schema for the monitoring + description: SecureSourceManagerInstance is the Schema for the SecureSourceManagerInstance API properties: apiVersion: @@ -117875,16 +118145,13 @@ spec: metadata: type: object spec: + description: SecureSourceManagerInstanceSpec defines the desired state + of SecureSourceManagerInstance properties: kmsKey: description: Optional. Immutable. Customer-managed encryption key name, in the format projects/*/locations/*/keyRings/*/cryptoKeys/*. type: string - labels: - additionalProperties: - type: string - description: Optional. Labels as key value pairs. - type: object location: description: Immutable. Location of the instance. type: string @@ -117930,10 +118197,12 @@ spec: - projectRef type: object status: + description: SecureSourceManagerInstanceStatus defines the config connector + machine state of SecureSourceManagerInstance properties: conditions: description: Conditions represent the latest available observations - of the SecureSourceManagerInstance's current state. + of the object's current state. items: properties: lastTransitionTime: @@ -117957,6 +118226,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the SecureSourceManagerInstance + resource in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -117966,7 +118239,8 @@ spec: format: int64 type: integer observedState: - description: ObservedState is the latest GCP state. + description: ObservedState is the state of the resource as most recently + observed in GCP. properties: hostConfig: description: Output only. A list of hostnames for this instance. @@ -117975,10 +118249,10 @@ spec: description: 'Output only. API hostname. This is the hostname to use for **Host: Data Plane** endpoints.' type: string - gitHttp: + gitHTTP: description: Output only. Git HTTP hostname. type: string - gitSsh: + gitSSH: description: Output only. Git SSH hostname. type: string html: @@ -117994,8 +118268,6 @@ spec: type: string type: object type: object - required: - - spec type: object served: true storage: true @@ -118006,7 +118278,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118211,7 +118483,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118374,7 +118646,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118594,7 +118866,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118751,7 +119023,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118903,7 +119175,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119050,7 +119322,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119228,7 +119500,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119369,7 +119641,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119551,7 +119823,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119750,7 +120022,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119959,7 +120231,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120099,7 +120371,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120270,13 +120542,12 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" cnrm.cloud.google.com/stability-level: stable cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" name: sqlinstances.sql.cnrm.cloud.google.com spec: group: sql.cnrm.cloud.google.com @@ -120284,6 +120555,7 @@ spec: categories: - gcp kind: SQLInstance + listKind: SQLInstanceList plural: sqlinstances shortNames: - gcpsqlinstance @@ -120311,23 +120583,80 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: SQLInstance is the Schema for the sql API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: properties: + cloneSource: + description: Create this database as a clone of a source instance. + Immutable. + properties: + binLogCoordinates: + description: Binary log coordinates, if specified, identify the + position up to which the source instance is cloned. If not specified, + the source instance is cloned up to the most recent binary log + coordinates. + properties: + binLogFileName: + description: Name of the binary log file for a Cloud SQL instance. + type: string + binLogPosition: + description: Position (offset) within the binary log file. + format: int64 + type: integer + type: object + databaseNames: + description: (SQL Server only) Clone only the specified databases + from the source instance. Clone all databases if empty. + items: + type: string + type: array + pointInTime: + description: Timestamp, if specified, identifies the time to which + the source instance is cloned. + type: string + sqlInstanceRef: + description: The source SQLInstance to clone + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The SQLInstance selfLink, when not managed by + Config Connector. + type: string + name: + description: The `name` field of a `SQLInstance` resource. + type: string + namespace: + description: The `namespace` field of a `SQLInstance` resource. + type: string + type: object + type: object databaseVersion: - default: MYSQL_5_6 description: The MySQL, PostgreSQL or SQL Server (beta) version to use. Supported values include MYSQL_5_6, MYSQL_5_7, MYSQL_8_0, POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, POSTGRES_14, @@ -120352,14 +120681,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object instanceType: @@ -120386,14 +120715,14 @@ spec: - external properties: external: - description: 'Allowed value: The `name` field of a `SQLInstance` - resource.' + description: The SQLInstance selfLink, when not managed by Config + Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `SQLInstance` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `SQLInstance` resource. type: string type: object region: @@ -120423,6 +120752,7 @@ spec: connectRetryInterval: description: Immutable. The number of seconds between connect retries. MySQL's default is 60 seconds. + format: int64 type: integer dumpFilePath: description: Immutable. Path to a SQL file in Google Cloud Storage @@ -120437,20 +120767,10 @@ spec: type: boolean masterHeartbeatPeriod: description: Immutable. Time in ms between replication heartbeats. + format: int64 type: integer password: description: Immutable. Password for the replication connection. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -120472,8 +120792,8 @@ spec: from. type: string required: - - name - key + - name type: object type: object type: object @@ -120495,17 +120815,6 @@ spec: type: string rootPassword: description: Initial root password. Required for MS SQL Server. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -120526,8 +120835,8 @@ spec: description: Name of the Secret to extract a value from. type: string required: - - name - key + - name type: object type: object type: object @@ -120553,22 +120862,25 @@ spec: threadsPerCore: description: The number of threads per physical core. Can be 1 or 2. + format: int64 type: integer type: object authorizedGaeApplications: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. items: type: string type: array availabilityType: - description: |- - The availability type of the Cloud SQL instance, high availability - (REGIONAL) or single zone (ZONAL). For all instances, ensure that - settings.backup_configuration.enabled is set to true. - For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled is set to true. - For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled + description: The availability type of the Cloud SQL instance, + high availability (REGIONAL) or single zone (ZONAL). For all + instances, ensure that settings.backup_configuration.enabled + is set to true. For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled + is set to true. For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled is set to true. Defaults to ZONAL. type: string backupConfiguration: @@ -120577,6 +120889,7 @@ spec: properties: retainedBackups: description: Number of backups to retain. + format: int64 type: integer retentionUnit: description: The unit that 'retainedBackups' represents. @@ -120606,6 +120919,7 @@ spec: description: The number of days of transaction logs we retain for point in time restore, from 1-7. (For PostgreSQL Enterprise Plus instances, from 1 to 35.). + format: int64 type: integer type: object collation: @@ -120615,9 +120929,12 @@ spec: description: Specifies if connections must use Cloud SQL connectors. type: string crashSafeReplication: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: boolean dataCacheConfig: description: Data cache configurations. @@ -120674,11 +120991,13 @@ spec: description: The maximum size, in GB, to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. + format: int64 type: integer diskSize: description: The size of data disk, in GB. Size of a running instance cannot be reduced but can be increased. The minimum value is 10GB. + format: int64 type: integer diskType: description: 'Immutable. The type of data disk: PD_SSD or PD_HDD. @@ -120698,10 +121017,12 @@ spec: description: Number of query execution plans captured by Insights per minute for all queries combined. Between 0 and 20. Default to 5. + format: int64 type: integer queryStringLength: description: Maximum query length stored in bytes. Between 256 and 4500. Default to 1024. + format: int64 type: integer recordApplicationTags: description: True if Query Insights will record application @@ -120763,14 +121084,15 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a - `ComputeNetwork` resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` + resource. type: string type: object pscConfig: @@ -120823,9 +121145,11 @@ spec: properties: day: description: Day of week (1-7), starting on Monday. + format: int64 type: integer hour: description: Hour of day (0-23), ignored if day not set. + format: int64 type: integer updateTrack: description: Receive updates earlier (canary) or later (stable). @@ -120844,6 +121168,7 @@ spec: type: boolean minLength: description: Minimum number of characters allowed. + format: int64 type: integer passwordChangeInterval: description: Minimum interval after which the password can @@ -120851,6 +121176,7 @@ spec: type: string reuseInterval: description: Number of previous passwords that cannot be reused. + format: int64 type: integer required: - enablePasswordPolicy @@ -120859,9 +121185,12 @@ spec: description: Pricing plan for this instance, can only be PER_USE. type: string replicationType: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: string sqlServerAuditConfig: properties: @@ -120883,14 +121212,15 @@ spec: - external properties: external: - description: 'Allowed value: The `url` field of a `StorageBucket` - resource.' + description: The StorageBucket selfLink, when not managed + by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `StorageBucket` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `StorageBucket` + resource. type: string type: object retentionInterval: @@ -120930,8 +121260,8 @@ spec: type: string type: array conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the SQLInstance's current state. items: properties: lastTransitionTime: @@ -120985,6 +121315,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer privateIpAddress: type: string @@ -121026,18 +121357,12 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121213,7 +121538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121454,7 +121779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121624,7 +121949,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122031,7 +122356,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122217,7 +122542,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122385,7 +122710,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122588,7 +122913,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122750,7 +123075,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123388,7 +123713,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123571,7 +123896,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123748,7 +124073,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123913,7 +124238,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124087,7 +124412,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124307,7 +124632,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124694,7 +125019,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125141,7 +125466,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125286,7 +125611,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125522,7 +125847,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125737,7 +126062,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125925,7 +126250,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126435,7 +126760,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126617,7 +126942,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126807,7 +127132,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -127086,7 +127411,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -127278,7 +127603,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/install-bundles/install-bundle-autopilot-namespaced/per-namespace-components.yaml b/install-bundles/install-bundle-autopilot-namespaced/per-namespace-components.yaml index 3cf6cc94df..4034e804e9 100644 --- a/install-bundles/install-bundle-autopilot-namespaced/per-namespace-components.yaml +++ b/install-bundles/install-bundle-autopilot-namespaced/per-namespace-components.yaml @@ -16,7 +16,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 iam.gke.io/gcp-service-account: cnrm-system-${NAMESPACE?}@${PROJECT_ID?}.iam.gserviceaccount.com labels: cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} @@ -28,7 +28,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} cnrm.cloud.google.com/system: "true" @@ -47,7 +47,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} cnrm.cloud.google.com/system: "true" @@ -66,7 +66,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} cnrm.cloud.google.com/system: "true" @@ -85,7 +85,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} cnrm.cloud.google.com/system: "true" @@ -103,7 +103,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "8888" prometheus.io/scrape: "true" labels: @@ -127,7 +127,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} @@ -144,7 +144,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} @@ -156,7 +156,7 @@ spec: - --prometheus-scrape-endpoint=:8888 command: - /configconnector/manager - image: gcr.io/cnrm-eap/controller:4fd3fd6 + image: gcr.io/cnrm-eap/controller:e373e18 imagePullPolicy: Always name: manager ports: diff --git a/install-bundles/install-bundle-autopilot-workload-identity/0-cnrm-system.yaml b/install-bundles/install-bundle-autopilot-workload-identity/0-cnrm-system.yaml index 65eacfb3d0..66d9ed4022 100644 --- a/install-bundles/install-bundle-autopilot-workload-identity/0-cnrm-system.yaml +++ b/install-bundles/install-bundle-autopilot-workload-identity/0-cnrm-system.yaml @@ -16,7 +16,7 @@ apiVersion: v1 kind: Namespace metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-system @@ -25,7 +25,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 iam.gke.io/gcp-service-account: cnrm-system@${PROJECT_ID?}.iam.gserviceaccount.com labels: cnrm.cloud.google.com/system: "true" @@ -36,7 +36,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -46,7 +46,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-resource-stats-recorder @@ -56,7 +56,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-manager @@ -66,7 +66,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-cnrm-system-role @@ -87,7 +87,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-cnrm-system-role @@ -108,7 +108,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -1285,7 +1285,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role @@ -1335,7 +1335,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-cluster-role @@ -1393,7 +1393,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-ns-role @@ -1418,7 +1418,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-role @@ -1448,7 +1448,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -2236,7 +2236,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role @@ -2299,7 +2299,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role-binding @@ -2317,7 +2317,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role-binding @@ -2335,7 +2335,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-admin-binding @@ -2358,7 +2358,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-binding @@ -2375,7 +2375,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-binding @@ -2392,7 +2392,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-watcher-binding @@ -2409,7 +2409,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-binding @@ -2426,7 +2426,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-binding @@ -2443,7 +2443,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -2460,7 +2460,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "8888" prometheus.io/scrape: "true" labels: @@ -2482,7 +2482,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "48797" prometheus.io/scrape: "true" labels: @@ -2503,7 +2503,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2521,7 +2521,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2534,8 +2534,8 @@ spec: - /configconnector/recorder env: - name: CONFIG_CONNECTOR_VERSION - value: 1.121.0 - image: gcr.io/cnrm-eap/recorder:4fd3fd6 + value: 1.122.0 + image: gcr.io/cnrm-eap/recorder:e373e18 imagePullPolicy: Always name: recorder ports: @@ -2569,7 +2569,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2584,7 +2584,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2599,7 +2599,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: gcr.io/cnrm-eap/webhook:4fd3fd6 + image: gcr.io/cnrm-eap/webhook:e373e18 imagePullPolicy: Always name: webhook ports: @@ -2629,7 +2629,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/system: "true" @@ -2644,7 +2644,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/system: "true" @@ -2654,7 +2654,7 @@ spec: - --prometheus-scrape-endpoint=:8888 command: - /configconnector/manager - image: gcr.io/cnrm-eap/controller:4fd3fd6 + image: gcr.io/cnrm-eap/controller:e373e18 imagePullPolicy: Always name: manager ports: @@ -2684,7 +2684,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2699,7 +2699,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2707,7 +2707,7 @@ spec: containers: - command: - /configconnector/deletiondefender - image: gcr.io/cnrm-eap/deletiondefender:4fd3fd6 + image: gcr.io/cnrm-eap/deletiondefender:e373e18 imagePullPolicy: Always name: deletiondefender ports: @@ -2738,7 +2738,7 @@ kind: HorizontalPodAutoscaler metadata: annotations: autoscaling.alpha.kubernetes.io/metrics: '[{"type":"Resource","resource":{"name":"memory","targetAverageUtilization":70}}]' - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook diff --git a/install-bundles/install-bundle-autopilot-workload-identity/crds.yaml b/install-bundles/install-bundle-autopilot-workload-identity/crds.yaml index 1413d71107..13f5a24abc 100644 --- a/install-bundles/install-bundle-autopilot-workload-identity/crds.yaml +++ b/install-bundles/install-bundle-autopilot-workload-identity/crds.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -264,7 +264,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -650,7 +650,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -780,7 +780,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -949,7 +949,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -1262,7 +1262,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -2456,7 +2456,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -2895,7 +2895,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -3617,6 +3617,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -4328,6 +4336,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -4350,7 +4366,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -4917,7 +4933,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5113,7 +5129,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5387,7 +5403,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5546,7 +5562,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5710,7 +5726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5883,7 +5899,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6027,7 +6043,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6157,7 +6173,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6285,7 +6301,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -6460,7 +6476,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6590,7 +6606,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6766,7 +6782,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6895,7 +6911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -7189,7 +7205,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7324,7 +7340,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7576,7 +7592,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7751,7 +7767,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7884,7 +7900,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -8585,7 +8601,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -8735,7 +8751,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9186,7 +9202,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9553,7 +9569,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9755,7 +9771,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9926,7 +9942,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10106,7 +10122,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10282,7 +10298,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10509,7 +10525,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10701,7 +10717,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10875,7 +10891,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11133,7 +11149,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11543,7 +11559,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11843,7 +11859,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -12699,7 +12715,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -12886,7 +12902,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13076,7 +13092,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13338,7 +13354,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13923,7 +13939,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14111,7 +14127,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14332,7 +14348,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14459,15 +14475,14 @@ spec: - external properties: external: - description: The KMSCryptoKeyRef selfLink, when not managed - by KCC. + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: The `name` field of a `KMSCryptoKeyRef` resource. + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: The `namespace` field of a `KMSCryptoKeyRef` - resource. + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object numNodes: @@ -14565,7 +14580,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14738,7 +14753,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15197,7 +15212,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15465,7 +15480,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15890,7 +15905,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -16331,7 +16346,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -16684,7 +16699,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -17505,7 +17520,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -17822,7 +17837,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18061,7 +18076,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18292,7 +18307,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18522,7 +18537,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20030,7 +20045,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20099,7 +20114,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -20282,6 +20297,9 @@ spec: of 16 bits, with an automatically determined IP within the peered VPC. If unspecified, a value of `/24` will be used. type: string + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf peeredNetworkRef: description: Immutable. The network definition that the workers are peered to. If this section is left empty, the workers @@ -20304,7 +20322,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -20314,6 +20332,9 @@ spec: resource. type: string type: object + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf type: object workerConfig: description: Machine configuration for the workers in the pool. @@ -20406,7 +20427,7 @@ spec: type: object type: array externalRef: - description: A unique specifier for the CloudBuild workerpool resource + description: A unique Config Connector specifier for the resource in GCP. type: string observedGeneration: @@ -20485,7 +20506,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20959,7 +20980,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -21391,7 +21412,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -21589,7 +21610,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -21856,7 +21877,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22251,7 +22272,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22430,7 +22451,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22692,7 +22713,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -23230,7 +23251,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23501,7 +23522,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23772,7 +23793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24227,7 +24248,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24497,7 +24518,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24711,7 +24732,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -25990,7 +26011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26204,7 +26225,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26381,7 +26402,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -27145,7 +27166,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -27296,7 +27317,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27516,7 +27537,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27708,7 +27729,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -28050,7 +28071,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -28428,7 +28449,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -28442,6 +28463,7 @@ spec: categories: - gcp kind: ComputeForwardingRule + listKind: ComputeForwardingRuleList plural: computeforwardingrules shortNames: - gcpcomputeforwardingrule @@ -28469,16 +28491,17 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: ComputeForwardingRule is the Schema for the compute API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object @@ -28519,9 +28542,8 @@ spec: whether the PSC endpoint can be accessed from another region. type: boolean backendServiceRef: - description: |- - A ComputeBackendService to receive the matched traffic. This is - used only for internal load balancing. + description: A ComputeBackendService to receive the matched traffic. + This is used only for internal load balancing. oneOf: - not: required: @@ -28538,20 +28560,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeBackendService` - resource.' + description: The ComputeBackendService selflink in the form "projects/{{project}}/global/backendServices/{{name}}" + or "projects/{{project}}/regions/{{region}}/backendServices/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeBackendService` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeBackendService` + resource. type: string type: object description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. + description: Immutable. An optional description of this resource. + Provide this property when you create the resource. type: string ipAddress: description: |- @@ -28574,11 +28597,6 @@ spec: forwarding rule. By default, if this field is empty, an ephemeral internal IP address will be automatically allocated from the IP range of the subnet or network configured for this forwarding rule. - oneOf: - - required: - - addressRef - - required: - - ip properties: addressRef: oneOf: @@ -28597,14 +28615,14 @@ spec: - external properties: external: - description: 'Allowed value: The `address` field of a `ComputeAddress` - resource.' + description: The ComputeAddress selflink in the form "projects/{{project}}/regions/{{region}}/addresses/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeAddress` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeAddress` resource. type: string type: object ip: @@ -28686,14 +28704,12 @@ spec: items: properties: name: - description: |- - Immutable. Name of the metadata label. The length must be between - 1 and 1024 characters, inclusive. + description: Immutable. Name of the metadata label. The + length must be between 1 and 1024 characters, inclusive. type: string value: - description: |- - Immutable. The value that the label must match. The value has a maximum - length of 1024 characters. + description: Immutable. The value that the label must + match. The value has a maximum length of 1024 characters. type: string required: - name @@ -28716,11 +28732,10 @@ spec: type: object type: array networkRef: - description: |- - This field is not used for external load balancing. For internal - load balancing, this field identifies the network that the load - balanced IP should belong to for this forwarding rule. If this - field is not specified, the default network will be used. + description: This field is not used for external load balancing. For + internal load balancing, this field identifies the network that + the load balanced IP should belong to for this forwarding rule. + If this field is not specified, the default network will be used. oneOf: - not: required: @@ -28737,14 +28752,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object networkTier: @@ -28778,7 +28793,6 @@ spec: [port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications) for details. - Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. @@ -28800,7 +28814,6 @@ spec: * By internal TCP/UDP load balancers, backend service-based network load balancers, internal protocol forwarding and when protocol is not L3_DEFAULT. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. Only packets addressed to these ports will be forwarded to the backends configured with this @@ -28891,37 +28904,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object target: - description: |- - The target resource to receive the matched traffic. The forwarded - traffic must be of a type appropriate to the target object. For - INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets + description: The target resource to receive the matched traffic. The + forwarded traffic must be of a type appropriate to the target object. + For INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets are valid. - oneOf: - - required: - - serviceAttachmentRef - - required: - - targetGRPCProxyRef - - required: - - targetHTTPProxyRef - - required: - - targetHTTPSProxyRef - - required: - - targetSSLProxyRef - - required: - - targetTCPProxyRef - - required: - - targetVPNGatewayRef properties: serviceAttachmentRef: oneOf: @@ -28940,14 +28937,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeServiceAttachment` - resource.' + description: The ComputeServiceAttachment selflink in the + form "projects/{{project}}/regions/{{region}}/serviceAttachments/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeServiceAttachment` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeServiceAttachment` + resource. type: string type: object targetGRPCProxyRef: @@ -28967,14 +28967,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetGRPCProxy` - resource.' + description: The ComputeTargetGrpcProxy selflink in the form + "projects/{{project}}/global/targetGrpcProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetGrpcProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetGrpcProxy` + resource. type: string type: object targetHTTPProxyRef: @@ -28994,14 +28997,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPProxy` - resource.' + description: The ComputeTargetHTTPProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPProxy` + resource. type: string type: object targetHTTPSProxyRef: @@ -29021,14 +29028,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPSProxy` - resource.' + description: The ComputeTargetHTTPSProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPSProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPSProxy` + resource. type: string type: object targetSSLProxyRef: @@ -29048,14 +29059,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetSSLProxy` - resource.' + description: The ComputeTargetSSLProxy selflink in the form + "projects/{{project}}/global/targetSslProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetSSLProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetSSLProxy` + resource. type: string type: object targetTCPProxyRef: @@ -29075,14 +29089,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetTCPProxy` - resource.' + description: The ComputeTargetTCPProxy selflink in the form + "projects/{{project}}/global/targetTcpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetTcpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetTCPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetTCPProxy` + resource. type: string type: object targetVPNGatewayRef: @@ -29102,14 +29120,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetVPNGateway` - resource.' + description: The ComputeTargetVPNGateway selflink in the form + "projects/{{project}}/regions/{{region}}/targetVpnGateways/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetVPNGateway` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetVPNGateway` + resource. type: string type: object type: object @@ -29126,8 +29147,8 @@ spec: if the current Forwarding Rule does not have sourceIPRanges specified.' type: string conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -29154,9 +29175,12 @@ spec: creationTimestamp: description: Creation timestamp in RFC3339 text format. type: string + externalRef: + description: A unique Config Connector specifier for the resource + in GCP. + type: string labelFingerprint: - description: |- - The fingerprint used for optimistic locking of this resource. Used + description: The fingerprint used for optimistic locking of this resource. Used internally during updates. type: string observedGeneration: @@ -29165,6 +29189,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer pscConnectionId: description: The PSC connection id of the PSC Forwarding Rule. @@ -29183,6 +29208,160 @@ spec: This field is only used for INTERNAL load balancing. type: string type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: alpha + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: computeglobalnetworkendpointgroups.compute.cnrm.cloud.google.com +spec: + group: compute.cnrm.cloud.google.com + names: + categories: + - gcp + kind: ComputeGlobalNetworkEndpointGroup + plural: computeglobalnetworkendpointgroups + shortNames: + - gcpcomputeglobalnetworkendpointgroup + - gcpcomputeglobalnetworkendpointgroups + singular: computeglobalnetworkendpointgroup + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + defaultPort: + description: |- + Immutable. The default port used if the port number is not specified in the + network endpoint. + type: integer + description: + description: |- + Immutable. An optional description of this resource. Provide this property when + you create the resource. + type: string + networkEndpointType: + description: 'Immutable. Type of network endpoints in this network + endpoint group. Possible values: ["INTERNET_IP_PORT", "INTERNET_FQDN_PORT"].' + type: string + projectRef: + description: The project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `Project` resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The name of the resource. Used for + creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + required: + - networkEndpointType + - projectRef + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + selfLink: + type: string + type: object required: - spec type: object @@ -29201,169 +29380,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: computeglobalnetworkendpointgroups.compute.cnrm.cloud.google.com -spec: - group: compute.cnrm.cloud.google.com - names: - categories: - - gcp - kind: ComputeGlobalNetworkEndpointGroup - plural: computeglobalnetworkendpointgroups - shortNames: - - gcpcomputeglobalnetworkendpointgroup - - gcpcomputeglobalnetworkendpointgroups - singular: computeglobalnetworkendpointgroup - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - defaultPort: - description: |- - Immutable. The default port used if the port number is not specified in the - network endpoint. - type: integer - description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. - type: string - networkEndpointType: - description: 'Immutable. Type of network endpoints in this network - endpoint group. Possible values: ["INTERNET_IP_PORT", "INTERNET_FQDN_PORT"].' - type: string - projectRef: - description: The project that this resource belongs to. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `name` field of a `Project` resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - resourceID: - description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. - type: string - required: - - networkEndpointType - - projectRef - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - selfLink: - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29521,7 +29538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29985,7 +30002,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30146,7 +30163,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30307,7 +30324,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30665,7 +30682,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -31444,7 +31461,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -31626,7 +31643,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -31829,7 +31846,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -32862,7 +32879,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -33894,7 +33911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34219,7 +34236,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34436,7 +34453,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34781,7 +34798,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34991,7 +35008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35203,7 +35220,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35374,7 +35391,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35580,7 +35597,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35968,7 +35985,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36149,7 +36166,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36349,7 +36366,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36523,7 +36540,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36813,7 +36830,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36994,7 +37011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37139,7 +37156,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37268,7 +37285,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37494,7 +37511,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -37894,7 +37911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38191,7 +38208,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38309,7 +38326,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38742,7 +38759,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38919,7 +38936,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39221,7 +39238,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39518,7 +39535,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39714,7 +39731,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39928,7 +39945,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40252,7 +40269,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40544,7 +40561,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41001,7 +41018,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41357,7 +41374,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41584,7 +41601,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41863,7 +41880,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42484,7 +42501,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -42831,7 +42848,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42937,7 +42954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43081,7 +43098,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43480,7 +43497,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43698,7 +43715,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43861,7 +43878,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44155,7 +44172,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44333,7 +44350,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44512,7 +44529,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44870,7 +44887,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45095,7 +45112,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45350,7 +45367,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45609,7 +45626,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45776,7 +45793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45937,7 +45954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48660,7 +48677,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48864,7 +48881,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -49236,7 +49253,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -49552,7 +49569,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -50141,7 +50158,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -50377,7 +50394,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -50728,7 +50745,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -52104,18 +52121,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect @@ -52604,7 +52620,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53308,18 +53324,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect @@ -53529,7 +53544,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53801,7 +53816,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53967,7 +53982,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54163,7 +54178,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54348,7 +54363,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54580,7 +54595,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54754,7 +54769,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54768,6 +54783,7 @@ spec: categories: - gcp kind: DataflowFlexTemplateJob + listKind: DataflowFlexTemplateJobList plural: dataflowflextemplatejobs shortNames: - gcpdataflowflextemplatejob @@ -54795,42 +54811,45 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: DataflowFlexTemplateJob is the Schema for the DataflowFlexTemplateJob + API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: + description: DataflowFlexTemplateJobSpec defines the desired state of + DataflowFlexTemplateJob properties: additionalExperiments: - description: List of experiments that should be used by the job. An - example value is ["enable_stackdriver_agent_metrics"]. + description: Additional experiment flags for the job. items: type: string type: array autoscalingAlgorithm: - description: The algorithm to use for autoscaling. + description: The algorithm to use for autoscaling type: string containerSpecGcsPath: + description: Cloud Storage path to a file with json serialized ContainerSpec + as content. type: string enableStreamingEngine: - description: Immutable. Indicates if the job should use the streaming - engine feature. + description: Whether to enable Streaming Engine for the job. type: boolean ipConfiguration: - description: The configuration for VM IPs. Options are "WORKER_IP_PUBLIC" - or "WORKER_IP_PRIVATE". + description: Configuration for VM IPs. type: string kmsKeyNameRef: - description: The name for the Cloud KMS key for the job. + description: The Cloud KMS key for the job. oneOf: - not: required: @@ -54847,14 +54866,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object launcherMachineType: @@ -54862,14 +54881,18 @@ spec: is n1-standard-1. type: string machineType: - description: The machine type to use for the job. + description: The machine type to use for the job. Defaults to the + value from the template if not specified. type: string maxWorkers: - description: Immutable. The maximum number of Google Compute Engine - instances to be made available to your pipeline during execution, - from 1 to 1000. + description: The maximum number of Google Compute Engine instances + to be made available to your pipeline during execution, from 1 to + 1000. + format: int32 type: integer networkRef: + description: Network to which VMs will be assigned. If empty or unspecified, + the service will use the network "default". oneOf: - not: required: @@ -54886,21 +54909,23 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object numWorkers: - description: Immutable. The initial number of Google Compute Engine - instances for the job. + description: The initial number of Google Compute Engine instances + for the job. + format: int32 type: integer parameters: + description: The parameters for FlexTemplate. Ex. {"num_workers":"5"} type: object x-kubernetes-preserve-unknown-fields: true region: @@ -54913,6 +54938,8 @@ spec: the SDK. Note this field is only valid for portable pipelines. type: string serviceAccountEmailRef: + description: The email address of the service account to run the job + as. oneOf: - not: required: @@ -54929,8 +54956,7 @@ spec: - external properties: external: - description: 'Allowed value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -54940,10 +54966,15 @@ spec: type: string type: object stagingLocation: - description: The Cloud Storage path to use for staging files. Must - be a valid Cloud Storage URL, beginning with gs://. + description: The Cloud Storage path for staging local files. Must + be a valid Cloud Storage URL, beginning with `gs://`. type: string subnetworkRef: + description: Subnetwork to which VMs will be assigned, if desired. + You can specify a subnetwork using either a complete URL or an abbreviated + path. Expected to be of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" + or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is + located in a Shared VPC network, you must use the complete URL. oneOf: - not: required: @@ -54960,34 +54991,36 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object tempLocation: description: The Cloud Storage path to use for temporary files. Must - be a valid Cloud Storage URL, beginning with gs://. + be a valid Cloud Storage URL, beginning with `gs://`. type: string transformNameMapping: - description: Only applicable when updating a pipeline. Map of transform - name prefixes of the job to be replaced with the corresponding name - prefixes of the new job. + description: Map of transform name prefixes of the job to be replaced + with the corresponding name prefixes of the new job. Only applicable + when updating a pipeline. type: object x-kubernetes-preserve-unknown-fields: true required: - containerSpecGcsPath type: object status: + description: DataflowFlexTemplateJobStatus defines the config connector + machine state of DataflowFlexTemplateJob properties: conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -55019,11 +55052,24 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer state: + description: |- + The current state of the job. + + Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise + specified. + + A job in the `JOB_STATE_RUNNING` state may asynchronously enter a + terminal state. After a job has reached a terminal state, no + further state updates may be made. + + This field may be mutated by the Cloud Dataflow service; + callers cannot mutate it. type: string type: - description: The type of this job, selected from the JobType enum. + description: The type of Cloud Dataflow job. type: string type: object required: @@ -55033,18 +55079,12 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -55330,7 +55370,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -55387,29 +55427,127 @@ spec: type: object spec: properties: + displayName: + description: Optional. The repository's user-friendly name. + type: string gitRemoteSettings: description: Optional. If set, configures this repository to be linked to a Git remote. properties: - authenticationTokenSecretVersion: + authenticationTokenSecretVersionRef: description: The name of the Secret Manager secret version to use as an authentication token for Git operations. Must be in the format projects/* /secrets/* /versions/*. - type: string + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object defaultBranch: description: The Git remote's default branch name. type: string - tokenStatus: - description: Indicates the status of the Git access token. https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories#TokenStatus. - type: string + sshAuthenticationConfig: + description: Authentication fields for remote uris using SSH protocol. + properties: + hostPublicKey: + description: Content of a public SSH key to verify an identity + of a remote Git host. + type: string + userPrivateKeySecretVersionRef: + description: The name of the Secret Manager secret version + to use as a ssh private key for Git operations. Must be + in the format projects/*/secrets/*/versions/* . + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object + required: + - hostPublicKey + - userPrivateKeySecretVersionRef + type: object url: description: The Git remote's URL. type: string required: - - authenticationTokenSecretVersion - defaultBranch - url type: object + npmrcEnvironmentVariablesSecretVersionRef: + description: Optional. The name of the Secret Manager secret version + to be used to interpolate variables into the .npmrc file for package + installation operations. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object projectRef: description: The project that this resource belongs to. oneOf: @@ -55450,6 +55588,39 @@ spec: creation and acquisition. When unset, the value of `metadata.name` is used as the default. type: string + serviceAccountRef: + description: Optional. The service account reference to run workflow + invocations under. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `email` field of an `IAMServiceAccount` resource. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + setAuthenticatedUserAdmin: + description: Optional. Input only. If set to true, the authenticated + user will be granted the roles/dataform.admin role on the created + repository. + type: boolean workspaceCompilationOverrides: description: Optional. If set, fields of workspaceCompilationOverrides override the default compilation settings that are specified in @@ -55500,6 +55671,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the DataformReposity resource + in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -55508,6 +55683,10 @@ spec: the resource. format: int64 type: integer + observedState: + description: ObservedState is the state of the resource as most recently + observed in GCP. + type: object type: object required: - spec @@ -55521,7 +55700,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -55800,7 +55979,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -56095,7 +56274,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -57910,7 +58089,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -59852,7 +60031,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60024,7 +60203,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60625,7 +60804,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60818,7 +60997,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61752,7 +61931,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61967,7 +62146,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62152,7 +62331,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62366,7 +62545,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62561,7 +62740,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -63111,7 +63290,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -63331,7 +63510,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64429,7 +64608,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64638,7 +64817,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64832,7 +65011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -65029,7 +65208,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -65266,7 +65445,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -69442,7 +69621,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -70054,7 +70233,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -71530,7 +71709,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -71901,7 +72080,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -72286,7 +72465,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -72482,7 +72661,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73454,7 +73633,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73633,7 +73812,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73829,7 +74008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73952,7 +74131,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74117,7 +74296,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74653,7 +74832,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74904,7 +75083,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75143,7 +75322,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75323,7 +75502,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75547,7 +75726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75689,7 +75868,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76235,7 +76414,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76457,7 +76636,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76786,7 +76965,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -76955,7 +77134,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77142,7 +77321,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77319,7 +77498,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77463,7 +77642,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77626,7 +77805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77778,7 +77957,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77926,7 +78105,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78073,7 +78252,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78227,7 +78406,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78440,7 +78619,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78737,7 +78916,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -78828,10 +79007,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -78925,10 +79102,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -78968,7 +79143,9 @@ spec: type: string type: object hierarchyController: - description: Hierarchy Controller configuration for the cluster. + description: 'Hierarchy Controller is no longer available. + Use https://github.com/kubernetes-sigs/hierarchical-namespaces + instead.' properties: enableHierarchicalResourceQuota: description: Whether hierarchical resource quota is enabled @@ -79280,7 +79457,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -79546,7 +79723,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -79911,7 +80088,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80044,7 +80221,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80202,7 +80379,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80364,7 +80541,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80678,7 +80855,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80879,7 +81056,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81080,7 +81257,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81241,7 +81418,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81381,7 +81558,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81706,7 +81883,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81934,7 +82111,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82174,7 +82351,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82353,7 +82530,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82495,7 +82672,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -82853,7 +83030,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83034,7 +83211,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83330,7 +83507,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83497,7 +83674,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83623,7 +83800,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83777,7 +83954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -84469,7 +84646,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84628,7 +84805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84833,7 +85010,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85016,7 +85193,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85240,7 +85417,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85404,7 +85581,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85617,7 +85794,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85834,7 +86011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85987,7 +86164,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86180,7 +86357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86369,7 +86546,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86549,7 +86726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86672,7 +86849,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86877,7 +87054,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -87166,7 +87343,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -87441,7 +87618,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -87897,7 +88074,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -88301,7 +88478,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -88605,7 +88782,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -88942,7 +89119,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -89118,7 +89295,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -90055,7 +90232,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -98130,7 +98307,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98321,7 +98498,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98616,7 +98793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98743,7 +98920,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -99044,7 +99221,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -99615,7 +99792,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -99774,7 +99951,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -100153,7 +100330,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -100335,7 +100512,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -100389,6 +100566,9 @@ spec: description: description: A description of this resource. type: string + location: + description: Immutable. Location of the resource. + type: string networkRef: description: 'The resource path of the consumer network. Example: - projects/{projectNumOrId}/global/networks/{resourceId}.' @@ -100409,7 +100589,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -100418,6 +100598,38 @@ spec: description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object pscConfig: description: Configuration used for Private Service Connect connections. Used when Infrastructure is PSC. @@ -100476,6 +100688,9 @@ spec: services have a prefix of gcp. For example, gcp-cloud-sql. 3rd party services do not. For example, test-service-a3dfcx. type: string + required: + - location + - projectRef type: object status: description: NetworkConnectivityServiceConnectionPolicyStatus defines @@ -100644,7 +100859,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101031,7 +101246,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -101306,7 +101521,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101564,7 +101779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101793,7 +102008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -102037,7 +102252,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -102274,7 +102489,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -102621,7 +102836,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -103528,7 +103743,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -103849,7 +104064,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -104075,7 +104290,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -104542,7 +104757,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105276,7 +105491,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105452,7 +105667,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105782,7 +105997,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -106103,7 +106318,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -106323,7 +106538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -106484,7 +106699,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -107253,7 +107468,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -108255,7 +108470,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -108946,7 +109161,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -109082,7 +109297,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -109585,7 +109800,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -110590,7 +110805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -111501,7 +111716,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -111917,7 +112132,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112142,7 +112357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112298,7 +112513,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112465,7 +112680,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112669,7 +112884,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112824,7 +113039,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113332,7 +113547,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113549,7 +113764,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -113803,7 +114018,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113865,6 +114080,9 @@ spec: description: Optional. The delete operation will fail when the value is set to true. type: boolean + location: + description: Immutable. Location of the resource. + type: string nodeType: description: Optional. The type of a redis node in the cluster. NodeType determines the underlying machine-type of a redis node. @@ -113897,6 +114115,38 @@ spec: type: string type: object type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object pscConfigs: description: Required. Each PscConfig configures the consumer network where IPs will be designated to the cluster for client access through @@ -113924,7 +114174,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -113934,6 +114184,8 @@ spec: resource. type: string type: object + required: + - networkRef type: object type: array redisConfigs: @@ -113973,6 +114225,9 @@ spec: MULTI_ZONE clusters. type: string type: object + required: + - location + - projectRef type: object status: description: RedisClusterStatus defines the config connector machine state @@ -114043,39 +114298,11 @@ spec: description: Output only. Customer configuration for where the endpoint is created and accessed from. properties: - networkRef: + network: description: Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: The compute network selflink of form - "projects//global/networks/", - when not managed by KCC. - type: string - name: - description: The `name` field of a `ComputeNetwork` - resource. - type: string - namespace: - description: The `namespace` field of a `ComputeNetwork` - resource. - type: string - type: object + type: string type: object type: object type: array @@ -114153,7 +114380,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114671,7 +114898,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114849,7 +115076,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115130,7 +115357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115717,6 +115944,49 @@ spec: description: A list of Volumes to make available to containers. items: properties: + cloudSqlInstance: + description: For Cloud SQL volumes, contains the specific + instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run + for more information on how to connect Cloud SQL and + Cloud Run. + properties: + instanceRefs: + items: + description: 'The Cloud SQL instance connection + names, as can be found in https://console.cloud.google.com/sql/instances. + Visit https://cloud.google.com/sql/docs/mysql/connect-run + for more information on how to connect Cloud + SQL and Cloud Run. Format: {project}:{location}:{instance}' + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `connectionName` + field of a `SQLInstance` resource.' + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More + info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + type: array + type: object emptyDir: description: Ephemeral storage used as a shared volume. properties: @@ -116132,7 +116402,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117262,7 +117532,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117602,7 +117872,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117818,7 +118088,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117859,7 +118129,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: SecureSourceManagerInstance is the Schema for the monitoring + description: SecureSourceManagerInstance is the Schema for the SecureSourceManagerInstance API properties: apiVersion: @@ -117875,16 +118145,13 @@ spec: metadata: type: object spec: + description: SecureSourceManagerInstanceSpec defines the desired state + of SecureSourceManagerInstance properties: kmsKey: description: Optional. Immutable. Customer-managed encryption key name, in the format projects/*/locations/*/keyRings/*/cryptoKeys/*. type: string - labels: - additionalProperties: - type: string - description: Optional. Labels as key value pairs. - type: object location: description: Immutable. Location of the instance. type: string @@ -117930,10 +118197,12 @@ spec: - projectRef type: object status: + description: SecureSourceManagerInstanceStatus defines the config connector + machine state of SecureSourceManagerInstance properties: conditions: description: Conditions represent the latest available observations - of the SecureSourceManagerInstance's current state. + of the object's current state. items: properties: lastTransitionTime: @@ -117957,6 +118226,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the SecureSourceManagerInstance + resource in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -117966,7 +118239,8 @@ spec: format: int64 type: integer observedState: - description: ObservedState is the latest GCP state. + description: ObservedState is the state of the resource as most recently + observed in GCP. properties: hostConfig: description: Output only. A list of hostnames for this instance. @@ -117975,10 +118249,10 @@ spec: description: 'Output only. API hostname. This is the hostname to use for **Host: Data Plane** endpoints.' type: string - gitHttp: + gitHTTP: description: Output only. Git HTTP hostname. type: string - gitSsh: + gitSSH: description: Output only. Git SSH hostname. type: string html: @@ -117994,8 +118268,6 @@ spec: type: string type: object type: object - required: - - spec type: object served: true storage: true @@ -118006,7 +118278,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118211,7 +118483,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118374,7 +118646,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118594,7 +118866,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118751,7 +119023,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118903,7 +119175,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119050,7 +119322,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119228,7 +119500,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119369,7 +119641,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119551,7 +119823,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119750,7 +120022,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119959,7 +120231,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120099,7 +120371,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120270,13 +120542,12 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" cnrm.cloud.google.com/stability-level: stable cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" name: sqlinstances.sql.cnrm.cloud.google.com spec: group: sql.cnrm.cloud.google.com @@ -120284,6 +120555,7 @@ spec: categories: - gcp kind: SQLInstance + listKind: SQLInstanceList plural: sqlinstances shortNames: - gcpsqlinstance @@ -120311,23 +120583,80 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: SQLInstance is the Schema for the sql API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: properties: + cloneSource: + description: Create this database as a clone of a source instance. + Immutable. + properties: + binLogCoordinates: + description: Binary log coordinates, if specified, identify the + position up to which the source instance is cloned. If not specified, + the source instance is cloned up to the most recent binary log + coordinates. + properties: + binLogFileName: + description: Name of the binary log file for a Cloud SQL instance. + type: string + binLogPosition: + description: Position (offset) within the binary log file. + format: int64 + type: integer + type: object + databaseNames: + description: (SQL Server only) Clone only the specified databases + from the source instance. Clone all databases if empty. + items: + type: string + type: array + pointInTime: + description: Timestamp, if specified, identifies the time to which + the source instance is cloned. + type: string + sqlInstanceRef: + description: The source SQLInstance to clone + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The SQLInstance selfLink, when not managed by + Config Connector. + type: string + name: + description: The `name` field of a `SQLInstance` resource. + type: string + namespace: + description: The `namespace` field of a `SQLInstance` resource. + type: string + type: object + type: object databaseVersion: - default: MYSQL_5_6 description: The MySQL, PostgreSQL or SQL Server (beta) version to use. Supported values include MYSQL_5_6, MYSQL_5_7, MYSQL_8_0, POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, POSTGRES_14, @@ -120352,14 +120681,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object instanceType: @@ -120386,14 +120715,14 @@ spec: - external properties: external: - description: 'Allowed value: The `name` field of a `SQLInstance` - resource.' + description: The SQLInstance selfLink, when not managed by Config + Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `SQLInstance` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `SQLInstance` resource. type: string type: object region: @@ -120423,6 +120752,7 @@ spec: connectRetryInterval: description: Immutable. The number of seconds between connect retries. MySQL's default is 60 seconds. + format: int64 type: integer dumpFilePath: description: Immutable. Path to a SQL file in Google Cloud Storage @@ -120437,20 +120767,10 @@ spec: type: boolean masterHeartbeatPeriod: description: Immutable. Time in ms between replication heartbeats. + format: int64 type: integer password: description: Immutable. Password for the replication connection. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -120472,8 +120792,8 @@ spec: from. type: string required: - - name - key + - name type: object type: object type: object @@ -120495,17 +120815,6 @@ spec: type: string rootPassword: description: Initial root password. Required for MS SQL Server. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -120526,8 +120835,8 @@ spec: description: Name of the Secret to extract a value from. type: string required: - - name - key + - name type: object type: object type: object @@ -120553,22 +120862,25 @@ spec: threadsPerCore: description: The number of threads per physical core. Can be 1 or 2. + format: int64 type: integer type: object authorizedGaeApplications: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. items: type: string type: array availabilityType: - description: |- - The availability type of the Cloud SQL instance, high availability - (REGIONAL) or single zone (ZONAL). For all instances, ensure that - settings.backup_configuration.enabled is set to true. - For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled is set to true. - For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled + description: The availability type of the Cloud SQL instance, + high availability (REGIONAL) or single zone (ZONAL). For all + instances, ensure that settings.backup_configuration.enabled + is set to true. For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled + is set to true. For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled is set to true. Defaults to ZONAL. type: string backupConfiguration: @@ -120577,6 +120889,7 @@ spec: properties: retainedBackups: description: Number of backups to retain. + format: int64 type: integer retentionUnit: description: The unit that 'retainedBackups' represents. @@ -120606,6 +120919,7 @@ spec: description: The number of days of transaction logs we retain for point in time restore, from 1-7. (For PostgreSQL Enterprise Plus instances, from 1 to 35.). + format: int64 type: integer type: object collation: @@ -120615,9 +120929,12 @@ spec: description: Specifies if connections must use Cloud SQL connectors. type: string crashSafeReplication: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: boolean dataCacheConfig: description: Data cache configurations. @@ -120674,11 +120991,13 @@ spec: description: The maximum size, in GB, to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. + format: int64 type: integer diskSize: description: The size of data disk, in GB. Size of a running instance cannot be reduced but can be increased. The minimum value is 10GB. + format: int64 type: integer diskType: description: 'Immutable. The type of data disk: PD_SSD or PD_HDD. @@ -120698,10 +121017,12 @@ spec: description: Number of query execution plans captured by Insights per minute for all queries combined. Between 0 and 20. Default to 5. + format: int64 type: integer queryStringLength: description: Maximum query length stored in bytes. Between 256 and 4500. Default to 1024. + format: int64 type: integer recordApplicationTags: description: True if Query Insights will record application @@ -120763,14 +121084,15 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a - `ComputeNetwork` resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` + resource. type: string type: object pscConfig: @@ -120823,9 +121145,11 @@ spec: properties: day: description: Day of week (1-7), starting on Monday. + format: int64 type: integer hour: description: Hour of day (0-23), ignored if day not set. + format: int64 type: integer updateTrack: description: Receive updates earlier (canary) or later (stable). @@ -120844,6 +121168,7 @@ spec: type: boolean minLength: description: Minimum number of characters allowed. + format: int64 type: integer passwordChangeInterval: description: Minimum interval after which the password can @@ -120851,6 +121176,7 @@ spec: type: string reuseInterval: description: Number of previous passwords that cannot be reused. + format: int64 type: integer required: - enablePasswordPolicy @@ -120859,9 +121185,12 @@ spec: description: Pricing plan for this instance, can only be PER_USE. type: string replicationType: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: string sqlServerAuditConfig: properties: @@ -120883,14 +121212,15 @@ spec: - external properties: external: - description: 'Allowed value: The `url` field of a `StorageBucket` - resource.' + description: The StorageBucket selfLink, when not managed + by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `StorageBucket` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `StorageBucket` + resource. type: string type: object retentionInterval: @@ -120930,8 +121260,8 @@ spec: type: string type: array conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the SQLInstance's current state. items: properties: lastTransitionTime: @@ -120985,6 +121315,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer privateIpAddress: type: string @@ -121026,18 +121357,12 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121213,7 +121538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121454,7 +121779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121624,7 +121949,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122031,7 +122356,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122217,7 +122542,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122385,7 +122710,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122588,7 +122913,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122750,7 +123075,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123388,7 +123713,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123571,7 +123896,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123748,7 +124073,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123913,7 +124238,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124087,7 +124412,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124307,7 +124632,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124694,7 +125019,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125141,7 +125466,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125286,7 +125611,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125522,7 +125847,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125737,7 +126062,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125925,7 +126250,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126435,7 +126760,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126617,7 +126942,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126807,7 +127132,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -127086,7 +127411,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -127278,7 +127603,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/install-bundles/install-bundle-gcp-identity/0-cnrm-system.yaml b/install-bundles/install-bundle-gcp-identity/0-cnrm-system.yaml index fe1045d805..657e96de3e 100644 --- a/install-bundles/install-bundle-gcp-identity/0-cnrm-system.yaml +++ b/install-bundles/install-bundle-gcp-identity/0-cnrm-system.yaml @@ -16,7 +16,7 @@ apiVersion: v1 kind: Namespace metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-system @@ -25,7 +25,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-controller-manager @@ -35,7 +35,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -45,7 +45,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-resource-stats-recorder @@ -55,7 +55,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-manager @@ -65,7 +65,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-cnrm-system-role @@ -86,7 +86,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-cnrm-system-role @@ -107,7 +107,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -1284,7 +1284,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role @@ -1334,7 +1334,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-cluster-role @@ -1392,7 +1392,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-ns-role @@ -1417,7 +1417,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-role @@ -1447,7 +1447,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -2235,7 +2235,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role @@ -2298,7 +2298,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role-binding @@ -2316,7 +2316,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role-binding @@ -2334,7 +2334,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-admin-binding @@ -2357,7 +2357,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-binding @@ -2374,7 +2374,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-binding @@ -2391,7 +2391,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-watcher-binding @@ -2408,7 +2408,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-binding @@ -2425,7 +2425,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-binding @@ -2442,7 +2442,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -2459,7 +2459,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "8888" prometheus.io/scrape: "true" labels: @@ -2481,7 +2481,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "48797" prometheus.io/scrape: "true" labels: @@ -2502,7 +2502,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2520,7 +2520,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2533,8 +2533,8 @@ spec: - /configconnector/recorder env: - name: CONFIG_CONNECTOR_VERSION - value: 1.121.0 - image: gcr.io/cnrm-eap/recorder:4fd3fd6 + value: 1.122.0 + image: gcr.io/cnrm-eap/recorder:e373e18 imagePullPolicy: Always name: recorder ports: @@ -2568,7 +2568,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2583,7 +2583,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2598,7 +2598,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: gcr.io/cnrm-eap/webhook:4fd3fd6 + image: gcr.io/cnrm-eap/webhook:e373e18 imagePullPolicy: Always name: webhook ports: @@ -2628,7 +2628,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/system: "true" @@ -2643,7 +2643,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/system: "true" @@ -2656,7 +2656,7 @@ spec: env: - name: GOOGLE_APPLICATION_CREDENTIALS value: /var/secrets/google/key.json - image: gcr.io/cnrm-eap/controller:4fd3fd6 + image: gcr.io/cnrm-eap/controller:e373e18 imagePullPolicy: Always name: manager ports: @@ -2693,7 +2693,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2708,7 +2708,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2716,7 +2716,7 @@ spec: containers: - command: - /configconnector/deletiondefender - image: gcr.io/cnrm-eap/deletiondefender:4fd3fd6 + image: gcr.io/cnrm-eap/deletiondefender:e373e18 imagePullPolicy: Always name: deletiondefender ports: @@ -2747,7 +2747,7 @@ kind: HorizontalPodAutoscaler metadata: annotations: autoscaling.alpha.kubernetes.io/metrics: '[{"type":"Resource","resource":{"name":"memory","targetAverageUtilization":70}}]' - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook diff --git a/install-bundles/install-bundle-gcp-identity/crds.yaml b/install-bundles/install-bundle-gcp-identity/crds.yaml index 1413d71107..13f5a24abc 100644 --- a/install-bundles/install-bundle-gcp-identity/crds.yaml +++ b/install-bundles/install-bundle-gcp-identity/crds.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -264,7 +264,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -650,7 +650,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -780,7 +780,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -949,7 +949,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -1262,7 +1262,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -2456,7 +2456,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -2895,7 +2895,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -3617,6 +3617,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -4328,6 +4336,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -4350,7 +4366,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -4917,7 +4933,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5113,7 +5129,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5387,7 +5403,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5546,7 +5562,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5710,7 +5726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5883,7 +5899,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6027,7 +6043,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6157,7 +6173,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6285,7 +6301,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -6460,7 +6476,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6590,7 +6606,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6766,7 +6782,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6895,7 +6911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -7189,7 +7205,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7324,7 +7340,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7576,7 +7592,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7751,7 +7767,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7884,7 +7900,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -8585,7 +8601,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -8735,7 +8751,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9186,7 +9202,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9553,7 +9569,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9755,7 +9771,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9926,7 +9942,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10106,7 +10122,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10282,7 +10298,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10509,7 +10525,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10701,7 +10717,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10875,7 +10891,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11133,7 +11149,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11543,7 +11559,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11843,7 +11859,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -12699,7 +12715,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -12886,7 +12902,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13076,7 +13092,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13338,7 +13354,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13923,7 +13939,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14111,7 +14127,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14332,7 +14348,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14459,15 +14475,14 @@ spec: - external properties: external: - description: The KMSCryptoKeyRef selfLink, when not managed - by KCC. + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: The `name` field of a `KMSCryptoKeyRef` resource. + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: The `namespace` field of a `KMSCryptoKeyRef` - resource. + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object numNodes: @@ -14565,7 +14580,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14738,7 +14753,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15197,7 +15212,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15465,7 +15480,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15890,7 +15905,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -16331,7 +16346,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -16684,7 +16699,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -17505,7 +17520,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -17822,7 +17837,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18061,7 +18076,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18292,7 +18307,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18522,7 +18537,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20030,7 +20045,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20099,7 +20114,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -20282,6 +20297,9 @@ spec: of 16 bits, with an automatically determined IP within the peered VPC. If unspecified, a value of `/24` will be used. type: string + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf peeredNetworkRef: description: Immutable. The network definition that the workers are peered to. If this section is left empty, the workers @@ -20304,7 +20322,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -20314,6 +20332,9 @@ spec: resource. type: string type: object + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf type: object workerConfig: description: Machine configuration for the workers in the pool. @@ -20406,7 +20427,7 @@ spec: type: object type: array externalRef: - description: A unique specifier for the CloudBuild workerpool resource + description: A unique Config Connector specifier for the resource in GCP. type: string observedGeneration: @@ -20485,7 +20506,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20959,7 +20980,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -21391,7 +21412,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -21589,7 +21610,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -21856,7 +21877,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22251,7 +22272,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22430,7 +22451,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22692,7 +22713,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -23230,7 +23251,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23501,7 +23522,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23772,7 +23793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24227,7 +24248,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24497,7 +24518,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24711,7 +24732,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -25990,7 +26011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26204,7 +26225,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26381,7 +26402,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -27145,7 +27166,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -27296,7 +27317,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27516,7 +27537,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27708,7 +27729,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -28050,7 +28071,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -28428,7 +28449,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -28442,6 +28463,7 @@ spec: categories: - gcp kind: ComputeForwardingRule + listKind: ComputeForwardingRuleList plural: computeforwardingrules shortNames: - gcpcomputeforwardingrule @@ -28469,16 +28491,17 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: ComputeForwardingRule is the Schema for the compute API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object @@ -28519,9 +28542,8 @@ spec: whether the PSC endpoint can be accessed from another region. type: boolean backendServiceRef: - description: |- - A ComputeBackendService to receive the matched traffic. This is - used only for internal load balancing. + description: A ComputeBackendService to receive the matched traffic. + This is used only for internal load balancing. oneOf: - not: required: @@ -28538,20 +28560,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeBackendService` - resource.' + description: The ComputeBackendService selflink in the form "projects/{{project}}/global/backendServices/{{name}}" + or "projects/{{project}}/regions/{{region}}/backendServices/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeBackendService` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeBackendService` + resource. type: string type: object description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. + description: Immutable. An optional description of this resource. + Provide this property when you create the resource. type: string ipAddress: description: |- @@ -28574,11 +28597,6 @@ spec: forwarding rule. By default, if this field is empty, an ephemeral internal IP address will be automatically allocated from the IP range of the subnet or network configured for this forwarding rule. - oneOf: - - required: - - addressRef - - required: - - ip properties: addressRef: oneOf: @@ -28597,14 +28615,14 @@ spec: - external properties: external: - description: 'Allowed value: The `address` field of a `ComputeAddress` - resource.' + description: The ComputeAddress selflink in the form "projects/{{project}}/regions/{{region}}/addresses/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeAddress` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeAddress` resource. type: string type: object ip: @@ -28686,14 +28704,12 @@ spec: items: properties: name: - description: |- - Immutable. Name of the metadata label. The length must be between - 1 and 1024 characters, inclusive. + description: Immutable. Name of the metadata label. The + length must be between 1 and 1024 characters, inclusive. type: string value: - description: |- - Immutable. The value that the label must match. The value has a maximum - length of 1024 characters. + description: Immutable. The value that the label must + match. The value has a maximum length of 1024 characters. type: string required: - name @@ -28716,11 +28732,10 @@ spec: type: object type: array networkRef: - description: |- - This field is not used for external load balancing. For internal - load balancing, this field identifies the network that the load - balanced IP should belong to for this forwarding rule. If this - field is not specified, the default network will be used. + description: This field is not used for external load balancing. For + internal load balancing, this field identifies the network that + the load balanced IP should belong to for this forwarding rule. + If this field is not specified, the default network will be used. oneOf: - not: required: @@ -28737,14 +28752,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object networkTier: @@ -28778,7 +28793,6 @@ spec: [port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications) for details. - Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. @@ -28800,7 +28814,6 @@ spec: * By internal TCP/UDP load balancers, backend service-based network load balancers, internal protocol forwarding and when protocol is not L3_DEFAULT. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. Only packets addressed to these ports will be forwarded to the backends configured with this @@ -28891,37 +28904,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object target: - description: |- - The target resource to receive the matched traffic. The forwarded - traffic must be of a type appropriate to the target object. For - INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets + description: The target resource to receive the matched traffic. The + forwarded traffic must be of a type appropriate to the target object. + For INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets are valid. - oneOf: - - required: - - serviceAttachmentRef - - required: - - targetGRPCProxyRef - - required: - - targetHTTPProxyRef - - required: - - targetHTTPSProxyRef - - required: - - targetSSLProxyRef - - required: - - targetTCPProxyRef - - required: - - targetVPNGatewayRef properties: serviceAttachmentRef: oneOf: @@ -28940,14 +28937,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeServiceAttachment` - resource.' + description: The ComputeServiceAttachment selflink in the + form "projects/{{project}}/regions/{{region}}/serviceAttachments/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeServiceAttachment` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeServiceAttachment` + resource. type: string type: object targetGRPCProxyRef: @@ -28967,14 +28967,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetGRPCProxy` - resource.' + description: The ComputeTargetGrpcProxy selflink in the form + "projects/{{project}}/global/targetGrpcProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetGrpcProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetGrpcProxy` + resource. type: string type: object targetHTTPProxyRef: @@ -28994,14 +28997,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPProxy` - resource.' + description: The ComputeTargetHTTPProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPProxy` + resource. type: string type: object targetHTTPSProxyRef: @@ -29021,14 +29028,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPSProxy` - resource.' + description: The ComputeTargetHTTPSProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPSProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPSProxy` + resource. type: string type: object targetSSLProxyRef: @@ -29048,14 +29059,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetSSLProxy` - resource.' + description: The ComputeTargetSSLProxy selflink in the form + "projects/{{project}}/global/targetSslProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetSSLProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetSSLProxy` + resource. type: string type: object targetTCPProxyRef: @@ -29075,14 +29089,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetTCPProxy` - resource.' + description: The ComputeTargetTCPProxy selflink in the form + "projects/{{project}}/global/targetTcpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetTcpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetTCPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetTCPProxy` + resource. type: string type: object targetVPNGatewayRef: @@ -29102,14 +29120,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetVPNGateway` - resource.' + description: The ComputeTargetVPNGateway selflink in the form + "projects/{{project}}/regions/{{region}}/targetVpnGateways/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetVPNGateway` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetVPNGateway` + resource. type: string type: object type: object @@ -29126,8 +29147,8 @@ spec: if the current Forwarding Rule does not have sourceIPRanges specified.' type: string conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -29154,9 +29175,12 @@ spec: creationTimestamp: description: Creation timestamp in RFC3339 text format. type: string + externalRef: + description: A unique Config Connector specifier for the resource + in GCP. + type: string labelFingerprint: - description: |- - The fingerprint used for optimistic locking of this resource. Used + description: The fingerprint used for optimistic locking of this resource. Used internally during updates. type: string observedGeneration: @@ -29165,6 +29189,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer pscConnectionId: description: The PSC connection id of the PSC Forwarding Rule. @@ -29183,6 +29208,160 @@ spec: This field is only used for INTERNAL load balancing. type: string type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: alpha + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: computeglobalnetworkendpointgroups.compute.cnrm.cloud.google.com +spec: + group: compute.cnrm.cloud.google.com + names: + categories: + - gcp + kind: ComputeGlobalNetworkEndpointGroup + plural: computeglobalnetworkendpointgroups + shortNames: + - gcpcomputeglobalnetworkendpointgroup + - gcpcomputeglobalnetworkendpointgroups + singular: computeglobalnetworkendpointgroup + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + defaultPort: + description: |- + Immutable. The default port used if the port number is not specified in the + network endpoint. + type: integer + description: + description: |- + Immutable. An optional description of this resource. Provide this property when + you create the resource. + type: string + networkEndpointType: + description: 'Immutable. Type of network endpoints in this network + endpoint group. Possible values: ["INTERNET_IP_PORT", "INTERNET_FQDN_PORT"].' + type: string + projectRef: + description: The project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `Project` resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The name of the resource. Used for + creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + required: + - networkEndpointType + - projectRef + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + selfLink: + type: string + type: object required: - spec type: object @@ -29201,169 +29380,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: computeglobalnetworkendpointgroups.compute.cnrm.cloud.google.com -spec: - group: compute.cnrm.cloud.google.com - names: - categories: - - gcp - kind: ComputeGlobalNetworkEndpointGroup - plural: computeglobalnetworkendpointgroups - shortNames: - - gcpcomputeglobalnetworkendpointgroup - - gcpcomputeglobalnetworkendpointgroups - singular: computeglobalnetworkendpointgroup - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - defaultPort: - description: |- - Immutable. The default port used if the port number is not specified in the - network endpoint. - type: integer - description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. - type: string - networkEndpointType: - description: 'Immutable. Type of network endpoints in this network - endpoint group. Possible values: ["INTERNET_IP_PORT", "INTERNET_FQDN_PORT"].' - type: string - projectRef: - description: The project that this resource belongs to. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `name` field of a `Project` resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - resourceID: - description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. - type: string - required: - - networkEndpointType - - projectRef - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - selfLink: - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29521,7 +29538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29985,7 +30002,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30146,7 +30163,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30307,7 +30324,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30665,7 +30682,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -31444,7 +31461,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -31626,7 +31643,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -31829,7 +31846,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -32862,7 +32879,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -33894,7 +33911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34219,7 +34236,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34436,7 +34453,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34781,7 +34798,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34991,7 +35008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35203,7 +35220,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35374,7 +35391,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35580,7 +35597,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35968,7 +35985,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36149,7 +36166,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36349,7 +36366,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36523,7 +36540,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36813,7 +36830,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36994,7 +37011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37139,7 +37156,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37268,7 +37285,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37494,7 +37511,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -37894,7 +37911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38191,7 +38208,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38309,7 +38326,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38742,7 +38759,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38919,7 +38936,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39221,7 +39238,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39518,7 +39535,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39714,7 +39731,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39928,7 +39945,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40252,7 +40269,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40544,7 +40561,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41001,7 +41018,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41357,7 +41374,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41584,7 +41601,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41863,7 +41880,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42484,7 +42501,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -42831,7 +42848,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42937,7 +42954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43081,7 +43098,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43480,7 +43497,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43698,7 +43715,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43861,7 +43878,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44155,7 +44172,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44333,7 +44350,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44512,7 +44529,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44870,7 +44887,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45095,7 +45112,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45350,7 +45367,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45609,7 +45626,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45776,7 +45793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45937,7 +45954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48660,7 +48677,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48864,7 +48881,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -49236,7 +49253,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -49552,7 +49569,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -50141,7 +50158,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -50377,7 +50394,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -50728,7 +50745,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -52104,18 +52121,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect @@ -52604,7 +52620,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53308,18 +53324,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect @@ -53529,7 +53544,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53801,7 +53816,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53967,7 +53982,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54163,7 +54178,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54348,7 +54363,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54580,7 +54595,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54754,7 +54769,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54768,6 +54783,7 @@ spec: categories: - gcp kind: DataflowFlexTemplateJob + listKind: DataflowFlexTemplateJobList plural: dataflowflextemplatejobs shortNames: - gcpdataflowflextemplatejob @@ -54795,42 +54811,45 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: DataflowFlexTemplateJob is the Schema for the DataflowFlexTemplateJob + API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: + description: DataflowFlexTemplateJobSpec defines the desired state of + DataflowFlexTemplateJob properties: additionalExperiments: - description: List of experiments that should be used by the job. An - example value is ["enable_stackdriver_agent_metrics"]. + description: Additional experiment flags for the job. items: type: string type: array autoscalingAlgorithm: - description: The algorithm to use for autoscaling. + description: The algorithm to use for autoscaling type: string containerSpecGcsPath: + description: Cloud Storage path to a file with json serialized ContainerSpec + as content. type: string enableStreamingEngine: - description: Immutable. Indicates if the job should use the streaming - engine feature. + description: Whether to enable Streaming Engine for the job. type: boolean ipConfiguration: - description: The configuration for VM IPs. Options are "WORKER_IP_PUBLIC" - or "WORKER_IP_PRIVATE". + description: Configuration for VM IPs. type: string kmsKeyNameRef: - description: The name for the Cloud KMS key for the job. + description: The Cloud KMS key for the job. oneOf: - not: required: @@ -54847,14 +54866,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object launcherMachineType: @@ -54862,14 +54881,18 @@ spec: is n1-standard-1. type: string machineType: - description: The machine type to use for the job. + description: The machine type to use for the job. Defaults to the + value from the template if not specified. type: string maxWorkers: - description: Immutable. The maximum number of Google Compute Engine - instances to be made available to your pipeline during execution, - from 1 to 1000. + description: The maximum number of Google Compute Engine instances + to be made available to your pipeline during execution, from 1 to + 1000. + format: int32 type: integer networkRef: + description: Network to which VMs will be assigned. If empty or unspecified, + the service will use the network "default". oneOf: - not: required: @@ -54886,21 +54909,23 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object numWorkers: - description: Immutable. The initial number of Google Compute Engine - instances for the job. + description: The initial number of Google Compute Engine instances + for the job. + format: int32 type: integer parameters: + description: The parameters for FlexTemplate. Ex. {"num_workers":"5"} type: object x-kubernetes-preserve-unknown-fields: true region: @@ -54913,6 +54938,8 @@ spec: the SDK. Note this field is only valid for portable pipelines. type: string serviceAccountEmailRef: + description: The email address of the service account to run the job + as. oneOf: - not: required: @@ -54929,8 +54956,7 @@ spec: - external properties: external: - description: 'Allowed value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -54940,10 +54966,15 @@ spec: type: string type: object stagingLocation: - description: The Cloud Storage path to use for staging files. Must - be a valid Cloud Storage URL, beginning with gs://. + description: The Cloud Storage path for staging local files. Must + be a valid Cloud Storage URL, beginning with `gs://`. type: string subnetworkRef: + description: Subnetwork to which VMs will be assigned, if desired. + You can specify a subnetwork using either a complete URL or an abbreviated + path. Expected to be of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" + or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is + located in a Shared VPC network, you must use the complete URL. oneOf: - not: required: @@ -54960,34 +54991,36 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object tempLocation: description: The Cloud Storage path to use for temporary files. Must - be a valid Cloud Storage URL, beginning with gs://. + be a valid Cloud Storage URL, beginning with `gs://`. type: string transformNameMapping: - description: Only applicable when updating a pipeline. Map of transform - name prefixes of the job to be replaced with the corresponding name - prefixes of the new job. + description: Map of transform name prefixes of the job to be replaced + with the corresponding name prefixes of the new job. Only applicable + when updating a pipeline. type: object x-kubernetes-preserve-unknown-fields: true required: - containerSpecGcsPath type: object status: + description: DataflowFlexTemplateJobStatus defines the config connector + machine state of DataflowFlexTemplateJob properties: conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -55019,11 +55052,24 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer state: + description: |- + The current state of the job. + + Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise + specified. + + A job in the `JOB_STATE_RUNNING` state may asynchronously enter a + terminal state. After a job has reached a terminal state, no + further state updates may be made. + + This field may be mutated by the Cloud Dataflow service; + callers cannot mutate it. type: string type: - description: The type of this job, selected from the JobType enum. + description: The type of Cloud Dataflow job. type: string type: object required: @@ -55033,18 +55079,12 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -55330,7 +55370,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -55387,29 +55427,127 @@ spec: type: object spec: properties: + displayName: + description: Optional. The repository's user-friendly name. + type: string gitRemoteSettings: description: Optional. If set, configures this repository to be linked to a Git remote. properties: - authenticationTokenSecretVersion: + authenticationTokenSecretVersionRef: description: The name of the Secret Manager secret version to use as an authentication token for Git operations. Must be in the format projects/* /secrets/* /versions/*. - type: string + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object defaultBranch: description: The Git remote's default branch name. type: string - tokenStatus: - description: Indicates the status of the Git access token. https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories#TokenStatus. - type: string + sshAuthenticationConfig: + description: Authentication fields for remote uris using SSH protocol. + properties: + hostPublicKey: + description: Content of a public SSH key to verify an identity + of a remote Git host. + type: string + userPrivateKeySecretVersionRef: + description: The name of the Secret Manager secret version + to use as a ssh private key for Git operations. Must be + in the format projects/*/secrets/*/versions/* . + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object + required: + - hostPublicKey + - userPrivateKeySecretVersionRef + type: object url: description: The Git remote's URL. type: string required: - - authenticationTokenSecretVersion - defaultBranch - url type: object + npmrcEnvironmentVariablesSecretVersionRef: + description: Optional. The name of the Secret Manager secret version + to be used to interpolate variables into the .npmrc file for package + installation operations. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object projectRef: description: The project that this resource belongs to. oneOf: @@ -55450,6 +55588,39 @@ spec: creation and acquisition. When unset, the value of `metadata.name` is used as the default. type: string + serviceAccountRef: + description: Optional. The service account reference to run workflow + invocations under. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `email` field of an `IAMServiceAccount` resource. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + setAuthenticatedUserAdmin: + description: Optional. Input only. If set to true, the authenticated + user will be granted the roles/dataform.admin role on the created + repository. + type: boolean workspaceCompilationOverrides: description: Optional. If set, fields of workspaceCompilationOverrides override the default compilation settings that are specified in @@ -55500,6 +55671,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the DataformReposity resource + in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -55508,6 +55683,10 @@ spec: the resource. format: int64 type: integer + observedState: + description: ObservedState is the state of the resource as most recently + observed in GCP. + type: object type: object required: - spec @@ -55521,7 +55700,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -55800,7 +55979,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -56095,7 +56274,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -57910,7 +58089,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -59852,7 +60031,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60024,7 +60203,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60625,7 +60804,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60818,7 +60997,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61752,7 +61931,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61967,7 +62146,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62152,7 +62331,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62366,7 +62545,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62561,7 +62740,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -63111,7 +63290,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -63331,7 +63510,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64429,7 +64608,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64638,7 +64817,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64832,7 +65011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -65029,7 +65208,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -65266,7 +65445,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -69442,7 +69621,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -70054,7 +70233,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -71530,7 +71709,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -71901,7 +72080,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -72286,7 +72465,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -72482,7 +72661,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73454,7 +73633,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73633,7 +73812,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73829,7 +74008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73952,7 +74131,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74117,7 +74296,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74653,7 +74832,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74904,7 +75083,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75143,7 +75322,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75323,7 +75502,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75547,7 +75726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75689,7 +75868,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76235,7 +76414,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76457,7 +76636,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76786,7 +76965,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -76955,7 +77134,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77142,7 +77321,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77319,7 +77498,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77463,7 +77642,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77626,7 +77805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77778,7 +77957,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77926,7 +78105,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78073,7 +78252,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78227,7 +78406,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78440,7 +78619,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78737,7 +78916,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -78828,10 +79007,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -78925,10 +79102,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -78968,7 +79143,9 @@ spec: type: string type: object hierarchyController: - description: Hierarchy Controller configuration for the cluster. + description: 'Hierarchy Controller is no longer available. + Use https://github.com/kubernetes-sigs/hierarchical-namespaces + instead.' properties: enableHierarchicalResourceQuota: description: Whether hierarchical resource quota is enabled @@ -79280,7 +79457,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -79546,7 +79723,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -79911,7 +80088,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80044,7 +80221,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80202,7 +80379,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80364,7 +80541,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80678,7 +80855,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80879,7 +81056,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81080,7 +81257,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81241,7 +81418,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81381,7 +81558,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81706,7 +81883,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81934,7 +82111,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82174,7 +82351,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82353,7 +82530,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82495,7 +82672,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -82853,7 +83030,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83034,7 +83211,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83330,7 +83507,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83497,7 +83674,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83623,7 +83800,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83777,7 +83954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -84469,7 +84646,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84628,7 +84805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84833,7 +85010,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85016,7 +85193,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85240,7 +85417,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85404,7 +85581,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85617,7 +85794,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85834,7 +86011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85987,7 +86164,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86180,7 +86357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86369,7 +86546,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86549,7 +86726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86672,7 +86849,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86877,7 +87054,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -87166,7 +87343,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -87441,7 +87618,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -87897,7 +88074,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -88301,7 +88478,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -88605,7 +88782,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -88942,7 +89119,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -89118,7 +89295,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -90055,7 +90232,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -98130,7 +98307,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98321,7 +98498,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98616,7 +98793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98743,7 +98920,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -99044,7 +99221,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -99615,7 +99792,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -99774,7 +99951,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -100153,7 +100330,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -100335,7 +100512,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -100389,6 +100566,9 @@ spec: description: description: A description of this resource. type: string + location: + description: Immutable. Location of the resource. + type: string networkRef: description: 'The resource path of the consumer network. Example: - projects/{projectNumOrId}/global/networks/{resourceId}.' @@ -100409,7 +100589,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -100418,6 +100598,38 @@ spec: description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object pscConfig: description: Configuration used for Private Service Connect connections. Used when Infrastructure is PSC. @@ -100476,6 +100688,9 @@ spec: services have a prefix of gcp. For example, gcp-cloud-sql. 3rd party services do not. For example, test-service-a3dfcx. type: string + required: + - location + - projectRef type: object status: description: NetworkConnectivityServiceConnectionPolicyStatus defines @@ -100644,7 +100859,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101031,7 +101246,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -101306,7 +101521,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101564,7 +101779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101793,7 +102008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -102037,7 +102252,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -102274,7 +102489,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -102621,7 +102836,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -103528,7 +103743,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -103849,7 +104064,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -104075,7 +104290,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -104542,7 +104757,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105276,7 +105491,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105452,7 +105667,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105782,7 +105997,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -106103,7 +106318,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -106323,7 +106538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -106484,7 +106699,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -107253,7 +107468,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -108255,7 +108470,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -108946,7 +109161,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -109082,7 +109297,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -109585,7 +109800,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -110590,7 +110805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -111501,7 +111716,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -111917,7 +112132,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112142,7 +112357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112298,7 +112513,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112465,7 +112680,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112669,7 +112884,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112824,7 +113039,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113332,7 +113547,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113549,7 +113764,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -113803,7 +114018,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113865,6 +114080,9 @@ spec: description: Optional. The delete operation will fail when the value is set to true. type: boolean + location: + description: Immutable. Location of the resource. + type: string nodeType: description: Optional. The type of a redis node in the cluster. NodeType determines the underlying machine-type of a redis node. @@ -113897,6 +114115,38 @@ spec: type: string type: object type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object pscConfigs: description: Required. Each PscConfig configures the consumer network where IPs will be designated to the cluster for client access through @@ -113924,7 +114174,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -113934,6 +114184,8 @@ spec: resource. type: string type: object + required: + - networkRef type: object type: array redisConfigs: @@ -113973,6 +114225,9 @@ spec: MULTI_ZONE clusters. type: string type: object + required: + - location + - projectRef type: object status: description: RedisClusterStatus defines the config connector machine state @@ -114043,39 +114298,11 @@ spec: description: Output only. Customer configuration for where the endpoint is created and accessed from. properties: - networkRef: + network: description: Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: The compute network selflink of form - "projects//global/networks/", - when not managed by KCC. - type: string - name: - description: The `name` field of a `ComputeNetwork` - resource. - type: string - namespace: - description: The `namespace` field of a `ComputeNetwork` - resource. - type: string - type: object + type: string type: object type: object type: array @@ -114153,7 +114380,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114671,7 +114898,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114849,7 +115076,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115130,7 +115357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115717,6 +115944,49 @@ spec: description: A list of Volumes to make available to containers. items: properties: + cloudSqlInstance: + description: For Cloud SQL volumes, contains the specific + instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run + for more information on how to connect Cloud SQL and + Cloud Run. + properties: + instanceRefs: + items: + description: 'The Cloud SQL instance connection + names, as can be found in https://console.cloud.google.com/sql/instances. + Visit https://cloud.google.com/sql/docs/mysql/connect-run + for more information on how to connect Cloud + SQL and Cloud Run. Format: {project}:{location}:{instance}' + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `connectionName` + field of a `SQLInstance` resource.' + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More + info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + type: array + type: object emptyDir: description: Ephemeral storage used as a shared volume. properties: @@ -116132,7 +116402,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117262,7 +117532,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117602,7 +117872,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117818,7 +118088,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117859,7 +118129,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: SecureSourceManagerInstance is the Schema for the monitoring + description: SecureSourceManagerInstance is the Schema for the SecureSourceManagerInstance API properties: apiVersion: @@ -117875,16 +118145,13 @@ spec: metadata: type: object spec: + description: SecureSourceManagerInstanceSpec defines the desired state + of SecureSourceManagerInstance properties: kmsKey: description: Optional. Immutable. Customer-managed encryption key name, in the format projects/*/locations/*/keyRings/*/cryptoKeys/*. type: string - labels: - additionalProperties: - type: string - description: Optional. Labels as key value pairs. - type: object location: description: Immutable. Location of the instance. type: string @@ -117930,10 +118197,12 @@ spec: - projectRef type: object status: + description: SecureSourceManagerInstanceStatus defines the config connector + machine state of SecureSourceManagerInstance properties: conditions: description: Conditions represent the latest available observations - of the SecureSourceManagerInstance's current state. + of the object's current state. items: properties: lastTransitionTime: @@ -117957,6 +118226,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the SecureSourceManagerInstance + resource in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -117966,7 +118239,8 @@ spec: format: int64 type: integer observedState: - description: ObservedState is the latest GCP state. + description: ObservedState is the state of the resource as most recently + observed in GCP. properties: hostConfig: description: Output only. A list of hostnames for this instance. @@ -117975,10 +118249,10 @@ spec: description: 'Output only. API hostname. This is the hostname to use for **Host: Data Plane** endpoints.' type: string - gitHttp: + gitHTTP: description: Output only. Git HTTP hostname. type: string - gitSsh: + gitSSH: description: Output only. Git SSH hostname. type: string html: @@ -117994,8 +118268,6 @@ spec: type: string type: object type: object - required: - - spec type: object served: true storage: true @@ -118006,7 +118278,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118211,7 +118483,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118374,7 +118646,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118594,7 +118866,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118751,7 +119023,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118903,7 +119175,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119050,7 +119322,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119228,7 +119500,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119369,7 +119641,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119551,7 +119823,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119750,7 +120022,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119959,7 +120231,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120099,7 +120371,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120270,13 +120542,12 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" cnrm.cloud.google.com/stability-level: stable cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" name: sqlinstances.sql.cnrm.cloud.google.com spec: group: sql.cnrm.cloud.google.com @@ -120284,6 +120555,7 @@ spec: categories: - gcp kind: SQLInstance + listKind: SQLInstanceList plural: sqlinstances shortNames: - gcpsqlinstance @@ -120311,23 +120583,80 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: SQLInstance is the Schema for the sql API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: properties: + cloneSource: + description: Create this database as a clone of a source instance. + Immutable. + properties: + binLogCoordinates: + description: Binary log coordinates, if specified, identify the + position up to which the source instance is cloned. If not specified, + the source instance is cloned up to the most recent binary log + coordinates. + properties: + binLogFileName: + description: Name of the binary log file for a Cloud SQL instance. + type: string + binLogPosition: + description: Position (offset) within the binary log file. + format: int64 + type: integer + type: object + databaseNames: + description: (SQL Server only) Clone only the specified databases + from the source instance. Clone all databases if empty. + items: + type: string + type: array + pointInTime: + description: Timestamp, if specified, identifies the time to which + the source instance is cloned. + type: string + sqlInstanceRef: + description: The source SQLInstance to clone + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The SQLInstance selfLink, when not managed by + Config Connector. + type: string + name: + description: The `name` field of a `SQLInstance` resource. + type: string + namespace: + description: The `namespace` field of a `SQLInstance` resource. + type: string + type: object + type: object databaseVersion: - default: MYSQL_5_6 description: The MySQL, PostgreSQL or SQL Server (beta) version to use. Supported values include MYSQL_5_6, MYSQL_5_7, MYSQL_8_0, POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, POSTGRES_14, @@ -120352,14 +120681,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object instanceType: @@ -120386,14 +120715,14 @@ spec: - external properties: external: - description: 'Allowed value: The `name` field of a `SQLInstance` - resource.' + description: The SQLInstance selfLink, when not managed by Config + Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `SQLInstance` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `SQLInstance` resource. type: string type: object region: @@ -120423,6 +120752,7 @@ spec: connectRetryInterval: description: Immutable. The number of seconds between connect retries. MySQL's default is 60 seconds. + format: int64 type: integer dumpFilePath: description: Immutable. Path to a SQL file in Google Cloud Storage @@ -120437,20 +120767,10 @@ spec: type: boolean masterHeartbeatPeriod: description: Immutable. Time in ms between replication heartbeats. + format: int64 type: integer password: description: Immutable. Password for the replication connection. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -120472,8 +120792,8 @@ spec: from. type: string required: - - name - key + - name type: object type: object type: object @@ -120495,17 +120815,6 @@ spec: type: string rootPassword: description: Initial root password. Required for MS SQL Server. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -120526,8 +120835,8 @@ spec: description: Name of the Secret to extract a value from. type: string required: - - name - key + - name type: object type: object type: object @@ -120553,22 +120862,25 @@ spec: threadsPerCore: description: The number of threads per physical core. Can be 1 or 2. + format: int64 type: integer type: object authorizedGaeApplications: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. items: type: string type: array availabilityType: - description: |- - The availability type of the Cloud SQL instance, high availability - (REGIONAL) or single zone (ZONAL). For all instances, ensure that - settings.backup_configuration.enabled is set to true. - For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled is set to true. - For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled + description: The availability type of the Cloud SQL instance, + high availability (REGIONAL) or single zone (ZONAL). For all + instances, ensure that settings.backup_configuration.enabled + is set to true. For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled + is set to true. For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled is set to true. Defaults to ZONAL. type: string backupConfiguration: @@ -120577,6 +120889,7 @@ spec: properties: retainedBackups: description: Number of backups to retain. + format: int64 type: integer retentionUnit: description: The unit that 'retainedBackups' represents. @@ -120606,6 +120919,7 @@ spec: description: The number of days of transaction logs we retain for point in time restore, from 1-7. (For PostgreSQL Enterprise Plus instances, from 1 to 35.). + format: int64 type: integer type: object collation: @@ -120615,9 +120929,12 @@ spec: description: Specifies if connections must use Cloud SQL connectors. type: string crashSafeReplication: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: boolean dataCacheConfig: description: Data cache configurations. @@ -120674,11 +120991,13 @@ spec: description: The maximum size, in GB, to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. + format: int64 type: integer diskSize: description: The size of data disk, in GB. Size of a running instance cannot be reduced but can be increased. The minimum value is 10GB. + format: int64 type: integer diskType: description: 'Immutable. The type of data disk: PD_SSD or PD_HDD. @@ -120698,10 +121017,12 @@ spec: description: Number of query execution plans captured by Insights per minute for all queries combined. Between 0 and 20. Default to 5. + format: int64 type: integer queryStringLength: description: Maximum query length stored in bytes. Between 256 and 4500. Default to 1024. + format: int64 type: integer recordApplicationTags: description: True if Query Insights will record application @@ -120763,14 +121084,15 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a - `ComputeNetwork` resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` + resource. type: string type: object pscConfig: @@ -120823,9 +121145,11 @@ spec: properties: day: description: Day of week (1-7), starting on Monday. + format: int64 type: integer hour: description: Hour of day (0-23), ignored if day not set. + format: int64 type: integer updateTrack: description: Receive updates earlier (canary) or later (stable). @@ -120844,6 +121168,7 @@ spec: type: boolean minLength: description: Minimum number of characters allowed. + format: int64 type: integer passwordChangeInterval: description: Minimum interval after which the password can @@ -120851,6 +121176,7 @@ spec: type: string reuseInterval: description: Number of previous passwords that cannot be reused. + format: int64 type: integer required: - enablePasswordPolicy @@ -120859,9 +121185,12 @@ spec: description: Pricing plan for this instance, can only be PER_USE. type: string replicationType: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: string sqlServerAuditConfig: properties: @@ -120883,14 +121212,15 @@ spec: - external properties: external: - description: 'Allowed value: The `url` field of a `StorageBucket` - resource.' + description: The StorageBucket selfLink, when not managed + by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `StorageBucket` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `StorageBucket` + resource. type: string type: object retentionInterval: @@ -120930,8 +121260,8 @@ spec: type: string type: array conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the SQLInstance's current state. items: properties: lastTransitionTime: @@ -120985,6 +121315,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer privateIpAddress: type: string @@ -121026,18 +121357,12 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121213,7 +121538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121454,7 +121779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121624,7 +121949,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122031,7 +122356,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122217,7 +122542,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122385,7 +122710,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122588,7 +122913,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122750,7 +123075,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123388,7 +123713,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123571,7 +123896,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123748,7 +124073,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123913,7 +124238,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124087,7 +124412,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124307,7 +124632,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124694,7 +125019,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125141,7 +125466,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125286,7 +125611,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125522,7 +125847,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125737,7 +126062,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125925,7 +126250,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126435,7 +126760,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126617,7 +126942,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126807,7 +127132,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -127086,7 +127411,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -127278,7 +127603,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/install-bundles/install-bundle-namespaced/0-cnrm-system.yaml b/install-bundles/install-bundle-namespaced/0-cnrm-system.yaml index 6f9be6901e..4583195759 100644 --- a/install-bundles/install-bundle-namespaced/0-cnrm-system.yaml +++ b/install-bundles/install-bundle-namespaced/0-cnrm-system.yaml @@ -16,7 +16,7 @@ apiVersion: v1 kind: Namespace metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-system @@ -25,7 +25,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -35,7 +35,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-resource-stats-recorder @@ -45,7 +45,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-unmanaged-detector @@ -55,7 +55,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-manager @@ -65,7 +65,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-cnrm-system-role @@ -86,7 +86,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-cnrm-system-role @@ -107,7 +107,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -1284,7 +1284,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role @@ -1334,7 +1334,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-cluster-role @@ -1392,7 +1392,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-ns-role @@ -1417,7 +1417,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-role @@ -1447,7 +1447,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-unmanaged-detector-cluster-role @@ -1478,7 +1478,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -2266,7 +2266,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role @@ -2329,7 +2329,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role-binding @@ -2347,7 +2347,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role-binding @@ -2365,7 +2365,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-admin-binding @@ -2388,7 +2388,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-binding @@ -2405,7 +2405,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-binding @@ -2422,7 +2422,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-unmanaged-detector-binding @@ -2439,7 +2439,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-binding @@ -2456,7 +2456,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -2473,7 +2473,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "48797" prometheus.io/scrape: "true" labels: @@ -2494,7 +2494,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2512,7 +2512,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2525,8 +2525,8 @@ spec: - /configconnector/recorder env: - name: CONFIG_CONNECTOR_VERSION - value: 1.121.0 - image: gcr.io/cnrm-eap/recorder:4fd3fd6 + value: 1.122.0 + image: gcr.io/cnrm-eap/recorder:e373e18 imagePullPolicy: Always name: recorder ports: @@ -2560,7 +2560,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2575,7 +2575,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2590,7 +2590,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: gcr.io/cnrm-eap/webhook:4fd3fd6 + image: gcr.io/cnrm-eap/webhook:e373e18 imagePullPolicy: Always name: webhook ports: @@ -2620,7 +2620,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2635,7 +2635,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2643,7 +2643,7 @@ spec: containers: - command: - /configconnector/deletiondefender - image: gcr.io/cnrm-eap/deletiondefender:4fd3fd6 + image: gcr.io/cnrm-eap/deletiondefender:e373e18 imagePullPolicy: Always name: deletiondefender ports: @@ -2673,7 +2673,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-unmanaged-detector cnrm.cloud.google.com/system: "true" @@ -2688,7 +2688,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-unmanaged-detector cnrm.cloud.google.com/system: "true" @@ -2696,7 +2696,7 @@ spec: containers: - command: - /configconnector/unmanageddetector - image: gcr.io/cnrm-eap/unmanageddetector:4fd3fd6 + image: gcr.io/cnrm-eap/unmanageddetector:e373e18 imagePullPolicy: Always name: unmanageddetector ports: @@ -2727,7 +2727,7 @@ kind: HorizontalPodAutoscaler metadata: annotations: autoscaling.alpha.kubernetes.io/metrics: '[{"type":"Resource","resource":{"name":"memory","targetAverageUtilization":70}}]' - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook diff --git a/install-bundles/install-bundle-namespaced/crds.yaml b/install-bundles/install-bundle-namespaced/crds.yaml index 1413d71107..13f5a24abc 100644 --- a/install-bundles/install-bundle-namespaced/crds.yaml +++ b/install-bundles/install-bundle-namespaced/crds.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -264,7 +264,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -650,7 +650,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -780,7 +780,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -949,7 +949,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -1262,7 +1262,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -2456,7 +2456,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -2895,7 +2895,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -3617,6 +3617,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -4328,6 +4336,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -4350,7 +4366,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -4917,7 +4933,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5113,7 +5129,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5387,7 +5403,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5546,7 +5562,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5710,7 +5726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5883,7 +5899,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6027,7 +6043,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6157,7 +6173,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6285,7 +6301,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -6460,7 +6476,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6590,7 +6606,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6766,7 +6782,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6895,7 +6911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -7189,7 +7205,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7324,7 +7340,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7576,7 +7592,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7751,7 +7767,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7884,7 +7900,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -8585,7 +8601,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -8735,7 +8751,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9186,7 +9202,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9553,7 +9569,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9755,7 +9771,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9926,7 +9942,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10106,7 +10122,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10282,7 +10298,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10509,7 +10525,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10701,7 +10717,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10875,7 +10891,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11133,7 +11149,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11543,7 +11559,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11843,7 +11859,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -12699,7 +12715,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -12886,7 +12902,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13076,7 +13092,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13338,7 +13354,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13923,7 +13939,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14111,7 +14127,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14332,7 +14348,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14459,15 +14475,14 @@ spec: - external properties: external: - description: The KMSCryptoKeyRef selfLink, when not managed - by KCC. + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: The `name` field of a `KMSCryptoKeyRef` resource. + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: The `namespace` field of a `KMSCryptoKeyRef` - resource. + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object numNodes: @@ -14565,7 +14580,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14738,7 +14753,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15197,7 +15212,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15465,7 +15480,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15890,7 +15905,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -16331,7 +16346,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -16684,7 +16699,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -17505,7 +17520,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -17822,7 +17837,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18061,7 +18076,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18292,7 +18307,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18522,7 +18537,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20030,7 +20045,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20099,7 +20114,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -20282,6 +20297,9 @@ spec: of 16 bits, with an automatically determined IP within the peered VPC. If unspecified, a value of `/24` will be used. type: string + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf peeredNetworkRef: description: Immutable. The network definition that the workers are peered to. If this section is left empty, the workers @@ -20304,7 +20322,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -20314,6 +20332,9 @@ spec: resource. type: string type: object + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf type: object workerConfig: description: Machine configuration for the workers in the pool. @@ -20406,7 +20427,7 @@ spec: type: object type: array externalRef: - description: A unique specifier for the CloudBuild workerpool resource + description: A unique Config Connector specifier for the resource in GCP. type: string observedGeneration: @@ -20485,7 +20506,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20959,7 +20980,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -21391,7 +21412,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -21589,7 +21610,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -21856,7 +21877,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22251,7 +22272,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22430,7 +22451,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22692,7 +22713,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -23230,7 +23251,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23501,7 +23522,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23772,7 +23793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24227,7 +24248,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24497,7 +24518,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24711,7 +24732,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -25990,7 +26011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26204,7 +26225,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26381,7 +26402,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -27145,7 +27166,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -27296,7 +27317,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27516,7 +27537,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27708,7 +27729,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -28050,7 +28071,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -28428,7 +28449,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -28442,6 +28463,7 @@ spec: categories: - gcp kind: ComputeForwardingRule + listKind: ComputeForwardingRuleList plural: computeforwardingrules shortNames: - gcpcomputeforwardingrule @@ -28469,16 +28491,17 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: ComputeForwardingRule is the Schema for the compute API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object @@ -28519,9 +28542,8 @@ spec: whether the PSC endpoint can be accessed from another region. type: boolean backendServiceRef: - description: |- - A ComputeBackendService to receive the matched traffic. This is - used only for internal load balancing. + description: A ComputeBackendService to receive the matched traffic. + This is used only for internal load balancing. oneOf: - not: required: @@ -28538,20 +28560,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeBackendService` - resource.' + description: The ComputeBackendService selflink in the form "projects/{{project}}/global/backendServices/{{name}}" + or "projects/{{project}}/regions/{{region}}/backendServices/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeBackendService` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeBackendService` + resource. type: string type: object description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. + description: Immutable. An optional description of this resource. + Provide this property when you create the resource. type: string ipAddress: description: |- @@ -28574,11 +28597,6 @@ spec: forwarding rule. By default, if this field is empty, an ephemeral internal IP address will be automatically allocated from the IP range of the subnet or network configured for this forwarding rule. - oneOf: - - required: - - addressRef - - required: - - ip properties: addressRef: oneOf: @@ -28597,14 +28615,14 @@ spec: - external properties: external: - description: 'Allowed value: The `address` field of a `ComputeAddress` - resource.' + description: The ComputeAddress selflink in the form "projects/{{project}}/regions/{{region}}/addresses/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeAddress` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeAddress` resource. type: string type: object ip: @@ -28686,14 +28704,12 @@ spec: items: properties: name: - description: |- - Immutable. Name of the metadata label. The length must be between - 1 and 1024 characters, inclusive. + description: Immutable. Name of the metadata label. The + length must be between 1 and 1024 characters, inclusive. type: string value: - description: |- - Immutable. The value that the label must match. The value has a maximum - length of 1024 characters. + description: Immutable. The value that the label must + match. The value has a maximum length of 1024 characters. type: string required: - name @@ -28716,11 +28732,10 @@ spec: type: object type: array networkRef: - description: |- - This field is not used for external load balancing. For internal - load balancing, this field identifies the network that the load - balanced IP should belong to for this forwarding rule. If this - field is not specified, the default network will be used. + description: This field is not used for external load balancing. For + internal load balancing, this field identifies the network that + the load balanced IP should belong to for this forwarding rule. + If this field is not specified, the default network will be used. oneOf: - not: required: @@ -28737,14 +28752,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object networkTier: @@ -28778,7 +28793,6 @@ spec: [port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications) for details. - Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. @@ -28800,7 +28814,6 @@ spec: * By internal TCP/UDP load balancers, backend service-based network load balancers, internal protocol forwarding and when protocol is not L3_DEFAULT. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. Only packets addressed to these ports will be forwarded to the backends configured with this @@ -28891,37 +28904,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object target: - description: |- - The target resource to receive the matched traffic. The forwarded - traffic must be of a type appropriate to the target object. For - INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets + description: The target resource to receive the matched traffic. The + forwarded traffic must be of a type appropriate to the target object. + For INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets are valid. - oneOf: - - required: - - serviceAttachmentRef - - required: - - targetGRPCProxyRef - - required: - - targetHTTPProxyRef - - required: - - targetHTTPSProxyRef - - required: - - targetSSLProxyRef - - required: - - targetTCPProxyRef - - required: - - targetVPNGatewayRef properties: serviceAttachmentRef: oneOf: @@ -28940,14 +28937,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeServiceAttachment` - resource.' + description: The ComputeServiceAttachment selflink in the + form "projects/{{project}}/regions/{{region}}/serviceAttachments/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeServiceAttachment` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeServiceAttachment` + resource. type: string type: object targetGRPCProxyRef: @@ -28967,14 +28967,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetGRPCProxy` - resource.' + description: The ComputeTargetGrpcProxy selflink in the form + "projects/{{project}}/global/targetGrpcProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetGrpcProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetGrpcProxy` + resource. type: string type: object targetHTTPProxyRef: @@ -28994,14 +28997,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPProxy` - resource.' + description: The ComputeTargetHTTPProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPProxy` + resource. type: string type: object targetHTTPSProxyRef: @@ -29021,14 +29028,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPSProxy` - resource.' + description: The ComputeTargetHTTPSProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPSProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPSProxy` + resource. type: string type: object targetSSLProxyRef: @@ -29048,14 +29059,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetSSLProxy` - resource.' + description: The ComputeTargetSSLProxy selflink in the form + "projects/{{project}}/global/targetSslProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetSSLProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetSSLProxy` + resource. type: string type: object targetTCPProxyRef: @@ -29075,14 +29089,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetTCPProxy` - resource.' + description: The ComputeTargetTCPProxy selflink in the form + "projects/{{project}}/global/targetTcpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetTcpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetTCPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetTCPProxy` + resource. type: string type: object targetVPNGatewayRef: @@ -29102,14 +29120,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetVPNGateway` - resource.' + description: The ComputeTargetVPNGateway selflink in the form + "projects/{{project}}/regions/{{region}}/targetVpnGateways/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetVPNGateway` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetVPNGateway` + resource. type: string type: object type: object @@ -29126,8 +29147,8 @@ spec: if the current Forwarding Rule does not have sourceIPRanges specified.' type: string conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -29154,9 +29175,12 @@ spec: creationTimestamp: description: Creation timestamp in RFC3339 text format. type: string + externalRef: + description: A unique Config Connector specifier for the resource + in GCP. + type: string labelFingerprint: - description: |- - The fingerprint used for optimistic locking of this resource. Used + description: The fingerprint used for optimistic locking of this resource. Used internally during updates. type: string observedGeneration: @@ -29165,6 +29189,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer pscConnectionId: description: The PSC connection id of the PSC Forwarding Rule. @@ -29183,6 +29208,160 @@ spec: This field is only used for INTERNAL load balancing. type: string type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: alpha + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: computeglobalnetworkendpointgroups.compute.cnrm.cloud.google.com +spec: + group: compute.cnrm.cloud.google.com + names: + categories: + - gcp + kind: ComputeGlobalNetworkEndpointGroup + plural: computeglobalnetworkendpointgroups + shortNames: + - gcpcomputeglobalnetworkendpointgroup + - gcpcomputeglobalnetworkendpointgroups + singular: computeglobalnetworkendpointgroup + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + defaultPort: + description: |- + Immutable. The default port used if the port number is not specified in the + network endpoint. + type: integer + description: + description: |- + Immutable. An optional description of this resource. Provide this property when + you create the resource. + type: string + networkEndpointType: + description: 'Immutable. Type of network endpoints in this network + endpoint group. Possible values: ["INTERNET_IP_PORT", "INTERNET_FQDN_PORT"].' + type: string + projectRef: + description: The project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `Project` resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The name of the resource. Used for + creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + required: + - networkEndpointType + - projectRef + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + selfLink: + type: string + type: object required: - spec type: object @@ -29201,169 +29380,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: computeglobalnetworkendpointgroups.compute.cnrm.cloud.google.com -spec: - group: compute.cnrm.cloud.google.com - names: - categories: - - gcp - kind: ComputeGlobalNetworkEndpointGroup - plural: computeglobalnetworkendpointgroups - shortNames: - - gcpcomputeglobalnetworkendpointgroup - - gcpcomputeglobalnetworkendpointgroups - singular: computeglobalnetworkendpointgroup - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - defaultPort: - description: |- - Immutable. The default port used if the port number is not specified in the - network endpoint. - type: integer - description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. - type: string - networkEndpointType: - description: 'Immutable. Type of network endpoints in this network - endpoint group. Possible values: ["INTERNET_IP_PORT", "INTERNET_FQDN_PORT"].' - type: string - projectRef: - description: The project that this resource belongs to. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `name` field of a `Project` resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - resourceID: - description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. - type: string - required: - - networkEndpointType - - projectRef - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - selfLink: - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29521,7 +29538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29985,7 +30002,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30146,7 +30163,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30307,7 +30324,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30665,7 +30682,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -31444,7 +31461,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -31626,7 +31643,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -31829,7 +31846,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -32862,7 +32879,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -33894,7 +33911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34219,7 +34236,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34436,7 +34453,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34781,7 +34798,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34991,7 +35008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35203,7 +35220,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35374,7 +35391,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35580,7 +35597,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35968,7 +35985,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36149,7 +36166,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36349,7 +36366,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36523,7 +36540,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36813,7 +36830,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36994,7 +37011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37139,7 +37156,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37268,7 +37285,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37494,7 +37511,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -37894,7 +37911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38191,7 +38208,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38309,7 +38326,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38742,7 +38759,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38919,7 +38936,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39221,7 +39238,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39518,7 +39535,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39714,7 +39731,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39928,7 +39945,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40252,7 +40269,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40544,7 +40561,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41001,7 +41018,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41357,7 +41374,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41584,7 +41601,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41863,7 +41880,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42484,7 +42501,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -42831,7 +42848,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42937,7 +42954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43081,7 +43098,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43480,7 +43497,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43698,7 +43715,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43861,7 +43878,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44155,7 +44172,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44333,7 +44350,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44512,7 +44529,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44870,7 +44887,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45095,7 +45112,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45350,7 +45367,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45609,7 +45626,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45776,7 +45793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45937,7 +45954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48660,7 +48677,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48864,7 +48881,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -49236,7 +49253,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -49552,7 +49569,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -50141,7 +50158,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -50377,7 +50394,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -50728,7 +50745,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -52104,18 +52121,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect @@ -52604,7 +52620,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53308,18 +53324,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect @@ -53529,7 +53544,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53801,7 +53816,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53967,7 +53982,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54163,7 +54178,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54348,7 +54363,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54580,7 +54595,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54754,7 +54769,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54768,6 +54783,7 @@ spec: categories: - gcp kind: DataflowFlexTemplateJob + listKind: DataflowFlexTemplateJobList plural: dataflowflextemplatejobs shortNames: - gcpdataflowflextemplatejob @@ -54795,42 +54811,45 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: DataflowFlexTemplateJob is the Schema for the DataflowFlexTemplateJob + API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: + description: DataflowFlexTemplateJobSpec defines the desired state of + DataflowFlexTemplateJob properties: additionalExperiments: - description: List of experiments that should be used by the job. An - example value is ["enable_stackdriver_agent_metrics"]. + description: Additional experiment flags for the job. items: type: string type: array autoscalingAlgorithm: - description: The algorithm to use for autoscaling. + description: The algorithm to use for autoscaling type: string containerSpecGcsPath: + description: Cloud Storage path to a file with json serialized ContainerSpec + as content. type: string enableStreamingEngine: - description: Immutable. Indicates if the job should use the streaming - engine feature. + description: Whether to enable Streaming Engine for the job. type: boolean ipConfiguration: - description: The configuration for VM IPs. Options are "WORKER_IP_PUBLIC" - or "WORKER_IP_PRIVATE". + description: Configuration for VM IPs. type: string kmsKeyNameRef: - description: The name for the Cloud KMS key for the job. + description: The Cloud KMS key for the job. oneOf: - not: required: @@ -54847,14 +54866,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object launcherMachineType: @@ -54862,14 +54881,18 @@ spec: is n1-standard-1. type: string machineType: - description: The machine type to use for the job. + description: The machine type to use for the job. Defaults to the + value from the template if not specified. type: string maxWorkers: - description: Immutable. The maximum number of Google Compute Engine - instances to be made available to your pipeline during execution, - from 1 to 1000. + description: The maximum number of Google Compute Engine instances + to be made available to your pipeline during execution, from 1 to + 1000. + format: int32 type: integer networkRef: + description: Network to which VMs will be assigned. If empty or unspecified, + the service will use the network "default". oneOf: - not: required: @@ -54886,21 +54909,23 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object numWorkers: - description: Immutable. The initial number of Google Compute Engine - instances for the job. + description: The initial number of Google Compute Engine instances + for the job. + format: int32 type: integer parameters: + description: The parameters for FlexTemplate. Ex. {"num_workers":"5"} type: object x-kubernetes-preserve-unknown-fields: true region: @@ -54913,6 +54938,8 @@ spec: the SDK. Note this field is only valid for portable pipelines. type: string serviceAccountEmailRef: + description: The email address of the service account to run the job + as. oneOf: - not: required: @@ -54929,8 +54956,7 @@ spec: - external properties: external: - description: 'Allowed value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -54940,10 +54966,15 @@ spec: type: string type: object stagingLocation: - description: The Cloud Storage path to use for staging files. Must - be a valid Cloud Storage URL, beginning with gs://. + description: The Cloud Storage path for staging local files. Must + be a valid Cloud Storage URL, beginning with `gs://`. type: string subnetworkRef: + description: Subnetwork to which VMs will be assigned, if desired. + You can specify a subnetwork using either a complete URL or an abbreviated + path. Expected to be of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" + or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is + located in a Shared VPC network, you must use the complete URL. oneOf: - not: required: @@ -54960,34 +54991,36 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object tempLocation: description: The Cloud Storage path to use for temporary files. Must - be a valid Cloud Storage URL, beginning with gs://. + be a valid Cloud Storage URL, beginning with `gs://`. type: string transformNameMapping: - description: Only applicable when updating a pipeline. Map of transform - name prefixes of the job to be replaced with the corresponding name - prefixes of the new job. + description: Map of transform name prefixes of the job to be replaced + with the corresponding name prefixes of the new job. Only applicable + when updating a pipeline. type: object x-kubernetes-preserve-unknown-fields: true required: - containerSpecGcsPath type: object status: + description: DataflowFlexTemplateJobStatus defines the config connector + machine state of DataflowFlexTemplateJob properties: conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -55019,11 +55052,24 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer state: + description: |- + The current state of the job. + + Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise + specified. + + A job in the `JOB_STATE_RUNNING` state may asynchronously enter a + terminal state. After a job has reached a terminal state, no + further state updates may be made. + + This field may be mutated by the Cloud Dataflow service; + callers cannot mutate it. type: string type: - description: The type of this job, selected from the JobType enum. + description: The type of Cloud Dataflow job. type: string type: object required: @@ -55033,18 +55079,12 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -55330,7 +55370,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -55387,29 +55427,127 @@ spec: type: object spec: properties: + displayName: + description: Optional. The repository's user-friendly name. + type: string gitRemoteSettings: description: Optional. If set, configures this repository to be linked to a Git remote. properties: - authenticationTokenSecretVersion: + authenticationTokenSecretVersionRef: description: The name of the Secret Manager secret version to use as an authentication token for Git operations. Must be in the format projects/* /secrets/* /versions/*. - type: string + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object defaultBranch: description: The Git remote's default branch name. type: string - tokenStatus: - description: Indicates the status of the Git access token. https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories#TokenStatus. - type: string + sshAuthenticationConfig: + description: Authentication fields for remote uris using SSH protocol. + properties: + hostPublicKey: + description: Content of a public SSH key to verify an identity + of a remote Git host. + type: string + userPrivateKeySecretVersionRef: + description: The name of the Secret Manager secret version + to use as a ssh private key for Git operations. Must be + in the format projects/*/secrets/*/versions/* . + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object + required: + - hostPublicKey + - userPrivateKeySecretVersionRef + type: object url: description: The Git remote's URL. type: string required: - - authenticationTokenSecretVersion - defaultBranch - url type: object + npmrcEnvironmentVariablesSecretVersionRef: + description: Optional. The name of the Secret Manager secret version + to be used to interpolate variables into the .npmrc file for package + installation operations. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object projectRef: description: The project that this resource belongs to. oneOf: @@ -55450,6 +55588,39 @@ spec: creation and acquisition. When unset, the value of `metadata.name` is used as the default. type: string + serviceAccountRef: + description: Optional. The service account reference to run workflow + invocations under. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `email` field of an `IAMServiceAccount` resource. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + setAuthenticatedUserAdmin: + description: Optional. Input only. If set to true, the authenticated + user will be granted the roles/dataform.admin role on the created + repository. + type: boolean workspaceCompilationOverrides: description: Optional. If set, fields of workspaceCompilationOverrides override the default compilation settings that are specified in @@ -55500,6 +55671,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the DataformReposity resource + in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -55508,6 +55683,10 @@ spec: the resource. format: int64 type: integer + observedState: + description: ObservedState is the state of the resource as most recently + observed in GCP. + type: object type: object required: - spec @@ -55521,7 +55700,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -55800,7 +55979,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -56095,7 +56274,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -57910,7 +58089,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -59852,7 +60031,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60024,7 +60203,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60625,7 +60804,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60818,7 +60997,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61752,7 +61931,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61967,7 +62146,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62152,7 +62331,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62366,7 +62545,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62561,7 +62740,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -63111,7 +63290,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -63331,7 +63510,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64429,7 +64608,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64638,7 +64817,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64832,7 +65011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -65029,7 +65208,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -65266,7 +65445,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -69442,7 +69621,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -70054,7 +70233,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -71530,7 +71709,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -71901,7 +72080,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -72286,7 +72465,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -72482,7 +72661,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73454,7 +73633,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73633,7 +73812,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73829,7 +74008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73952,7 +74131,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74117,7 +74296,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74653,7 +74832,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74904,7 +75083,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75143,7 +75322,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75323,7 +75502,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75547,7 +75726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75689,7 +75868,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76235,7 +76414,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76457,7 +76636,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76786,7 +76965,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -76955,7 +77134,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77142,7 +77321,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77319,7 +77498,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77463,7 +77642,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77626,7 +77805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77778,7 +77957,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77926,7 +78105,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78073,7 +78252,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78227,7 +78406,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78440,7 +78619,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78737,7 +78916,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -78828,10 +79007,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -78925,10 +79102,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -78968,7 +79143,9 @@ spec: type: string type: object hierarchyController: - description: Hierarchy Controller configuration for the cluster. + description: 'Hierarchy Controller is no longer available. + Use https://github.com/kubernetes-sigs/hierarchical-namespaces + instead.' properties: enableHierarchicalResourceQuota: description: Whether hierarchical resource quota is enabled @@ -79280,7 +79457,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -79546,7 +79723,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -79911,7 +80088,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80044,7 +80221,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80202,7 +80379,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80364,7 +80541,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80678,7 +80855,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80879,7 +81056,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81080,7 +81257,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81241,7 +81418,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81381,7 +81558,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81706,7 +81883,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81934,7 +82111,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82174,7 +82351,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82353,7 +82530,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82495,7 +82672,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -82853,7 +83030,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83034,7 +83211,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83330,7 +83507,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83497,7 +83674,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83623,7 +83800,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83777,7 +83954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -84469,7 +84646,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84628,7 +84805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84833,7 +85010,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85016,7 +85193,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85240,7 +85417,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85404,7 +85581,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85617,7 +85794,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85834,7 +86011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85987,7 +86164,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86180,7 +86357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86369,7 +86546,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86549,7 +86726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86672,7 +86849,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86877,7 +87054,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -87166,7 +87343,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -87441,7 +87618,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -87897,7 +88074,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -88301,7 +88478,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -88605,7 +88782,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -88942,7 +89119,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -89118,7 +89295,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -90055,7 +90232,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -98130,7 +98307,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98321,7 +98498,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98616,7 +98793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98743,7 +98920,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -99044,7 +99221,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -99615,7 +99792,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -99774,7 +99951,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -100153,7 +100330,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -100335,7 +100512,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -100389,6 +100566,9 @@ spec: description: description: A description of this resource. type: string + location: + description: Immutable. Location of the resource. + type: string networkRef: description: 'The resource path of the consumer network. Example: - projects/{projectNumOrId}/global/networks/{resourceId}.' @@ -100409,7 +100589,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -100418,6 +100598,38 @@ spec: description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object pscConfig: description: Configuration used for Private Service Connect connections. Used when Infrastructure is PSC. @@ -100476,6 +100688,9 @@ spec: services have a prefix of gcp. For example, gcp-cloud-sql. 3rd party services do not. For example, test-service-a3dfcx. type: string + required: + - location + - projectRef type: object status: description: NetworkConnectivityServiceConnectionPolicyStatus defines @@ -100644,7 +100859,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101031,7 +101246,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -101306,7 +101521,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101564,7 +101779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101793,7 +102008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -102037,7 +102252,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -102274,7 +102489,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -102621,7 +102836,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -103528,7 +103743,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -103849,7 +104064,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -104075,7 +104290,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -104542,7 +104757,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105276,7 +105491,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105452,7 +105667,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105782,7 +105997,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -106103,7 +106318,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -106323,7 +106538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -106484,7 +106699,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -107253,7 +107468,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -108255,7 +108470,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -108946,7 +109161,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -109082,7 +109297,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -109585,7 +109800,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -110590,7 +110805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -111501,7 +111716,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -111917,7 +112132,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112142,7 +112357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112298,7 +112513,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112465,7 +112680,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112669,7 +112884,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112824,7 +113039,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113332,7 +113547,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113549,7 +113764,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -113803,7 +114018,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113865,6 +114080,9 @@ spec: description: Optional. The delete operation will fail when the value is set to true. type: boolean + location: + description: Immutable. Location of the resource. + type: string nodeType: description: Optional. The type of a redis node in the cluster. NodeType determines the underlying machine-type of a redis node. @@ -113897,6 +114115,38 @@ spec: type: string type: object type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object pscConfigs: description: Required. Each PscConfig configures the consumer network where IPs will be designated to the cluster for client access through @@ -113924,7 +114174,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -113934,6 +114184,8 @@ spec: resource. type: string type: object + required: + - networkRef type: object type: array redisConfigs: @@ -113973,6 +114225,9 @@ spec: MULTI_ZONE clusters. type: string type: object + required: + - location + - projectRef type: object status: description: RedisClusterStatus defines the config connector machine state @@ -114043,39 +114298,11 @@ spec: description: Output only. Customer configuration for where the endpoint is created and accessed from. properties: - networkRef: + network: description: Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: The compute network selflink of form - "projects//global/networks/", - when not managed by KCC. - type: string - name: - description: The `name` field of a `ComputeNetwork` - resource. - type: string - namespace: - description: The `namespace` field of a `ComputeNetwork` - resource. - type: string - type: object + type: string type: object type: object type: array @@ -114153,7 +114380,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114671,7 +114898,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114849,7 +115076,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115130,7 +115357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115717,6 +115944,49 @@ spec: description: A list of Volumes to make available to containers. items: properties: + cloudSqlInstance: + description: For Cloud SQL volumes, contains the specific + instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run + for more information on how to connect Cloud SQL and + Cloud Run. + properties: + instanceRefs: + items: + description: 'The Cloud SQL instance connection + names, as can be found in https://console.cloud.google.com/sql/instances. + Visit https://cloud.google.com/sql/docs/mysql/connect-run + for more information on how to connect Cloud + SQL and Cloud Run. Format: {project}:{location}:{instance}' + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `connectionName` + field of a `SQLInstance` resource.' + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More + info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + type: array + type: object emptyDir: description: Ephemeral storage used as a shared volume. properties: @@ -116132,7 +116402,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117262,7 +117532,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117602,7 +117872,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117818,7 +118088,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117859,7 +118129,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: SecureSourceManagerInstance is the Schema for the monitoring + description: SecureSourceManagerInstance is the Schema for the SecureSourceManagerInstance API properties: apiVersion: @@ -117875,16 +118145,13 @@ spec: metadata: type: object spec: + description: SecureSourceManagerInstanceSpec defines the desired state + of SecureSourceManagerInstance properties: kmsKey: description: Optional. Immutable. Customer-managed encryption key name, in the format projects/*/locations/*/keyRings/*/cryptoKeys/*. type: string - labels: - additionalProperties: - type: string - description: Optional. Labels as key value pairs. - type: object location: description: Immutable. Location of the instance. type: string @@ -117930,10 +118197,12 @@ spec: - projectRef type: object status: + description: SecureSourceManagerInstanceStatus defines the config connector + machine state of SecureSourceManagerInstance properties: conditions: description: Conditions represent the latest available observations - of the SecureSourceManagerInstance's current state. + of the object's current state. items: properties: lastTransitionTime: @@ -117957,6 +118226,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the SecureSourceManagerInstance + resource in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -117966,7 +118239,8 @@ spec: format: int64 type: integer observedState: - description: ObservedState is the latest GCP state. + description: ObservedState is the state of the resource as most recently + observed in GCP. properties: hostConfig: description: Output only. A list of hostnames for this instance. @@ -117975,10 +118249,10 @@ spec: description: 'Output only. API hostname. This is the hostname to use for **Host: Data Plane** endpoints.' type: string - gitHttp: + gitHTTP: description: Output only. Git HTTP hostname. type: string - gitSsh: + gitSSH: description: Output only. Git SSH hostname. type: string html: @@ -117994,8 +118268,6 @@ spec: type: string type: object type: object - required: - - spec type: object served: true storage: true @@ -118006,7 +118278,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118211,7 +118483,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118374,7 +118646,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118594,7 +118866,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118751,7 +119023,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118903,7 +119175,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119050,7 +119322,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119228,7 +119500,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119369,7 +119641,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119551,7 +119823,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119750,7 +120022,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119959,7 +120231,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120099,7 +120371,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120270,13 +120542,12 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" cnrm.cloud.google.com/stability-level: stable cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" name: sqlinstances.sql.cnrm.cloud.google.com spec: group: sql.cnrm.cloud.google.com @@ -120284,6 +120555,7 @@ spec: categories: - gcp kind: SQLInstance + listKind: SQLInstanceList plural: sqlinstances shortNames: - gcpsqlinstance @@ -120311,23 +120583,80 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: SQLInstance is the Schema for the sql API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: properties: + cloneSource: + description: Create this database as a clone of a source instance. + Immutable. + properties: + binLogCoordinates: + description: Binary log coordinates, if specified, identify the + position up to which the source instance is cloned. If not specified, + the source instance is cloned up to the most recent binary log + coordinates. + properties: + binLogFileName: + description: Name of the binary log file for a Cloud SQL instance. + type: string + binLogPosition: + description: Position (offset) within the binary log file. + format: int64 + type: integer + type: object + databaseNames: + description: (SQL Server only) Clone only the specified databases + from the source instance. Clone all databases if empty. + items: + type: string + type: array + pointInTime: + description: Timestamp, if specified, identifies the time to which + the source instance is cloned. + type: string + sqlInstanceRef: + description: The source SQLInstance to clone + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The SQLInstance selfLink, when not managed by + Config Connector. + type: string + name: + description: The `name` field of a `SQLInstance` resource. + type: string + namespace: + description: The `namespace` field of a `SQLInstance` resource. + type: string + type: object + type: object databaseVersion: - default: MYSQL_5_6 description: The MySQL, PostgreSQL or SQL Server (beta) version to use. Supported values include MYSQL_5_6, MYSQL_5_7, MYSQL_8_0, POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, POSTGRES_14, @@ -120352,14 +120681,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object instanceType: @@ -120386,14 +120715,14 @@ spec: - external properties: external: - description: 'Allowed value: The `name` field of a `SQLInstance` - resource.' + description: The SQLInstance selfLink, when not managed by Config + Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `SQLInstance` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `SQLInstance` resource. type: string type: object region: @@ -120423,6 +120752,7 @@ spec: connectRetryInterval: description: Immutable. The number of seconds between connect retries. MySQL's default is 60 seconds. + format: int64 type: integer dumpFilePath: description: Immutable. Path to a SQL file in Google Cloud Storage @@ -120437,20 +120767,10 @@ spec: type: boolean masterHeartbeatPeriod: description: Immutable. Time in ms between replication heartbeats. + format: int64 type: integer password: description: Immutable. Password for the replication connection. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -120472,8 +120792,8 @@ spec: from. type: string required: - - name - key + - name type: object type: object type: object @@ -120495,17 +120815,6 @@ spec: type: string rootPassword: description: Initial root password. Required for MS SQL Server. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -120526,8 +120835,8 @@ spec: description: Name of the Secret to extract a value from. type: string required: - - name - key + - name type: object type: object type: object @@ -120553,22 +120862,25 @@ spec: threadsPerCore: description: The number of threads per physical core. Can be 1 or 2. + format: int64 type: integer type: object authorizedGaeApplications: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. items: type: string type: array availabilityType: - description: |- - The availability type of the Cloud SQL instance, high availability - (REGIONAL) or single zone (ZONAL). For all instances, ensure that - settings.backup_configuration.enabled is set to true. - For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled is set to true. - For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled + description: The availability type of the Cloud SQL instance, + high availability (REGIONAL) or single zone (ZONAL). For all + instances, ensure that settings.backup_configuration.enabled + is set to true. For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled + is set to true. For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled is set to true. Defaults to ZONAL. type: string backupConfiguration: @@ -120577,6 +120889,7 @@ spec: properties: retainedBackups: description: Number of backups to retain. + format: int64 type: integer retentionUnit: description: The unit that 'retainedBackups' represents. @@ -120606,6 +120919,7 @@ spec: description: The number of days of transaction logs we retain for point in time restore, from 1-7. (For PostgreSQL Enterprise Plus instances, from 1 to 35.). + format: int64 type: integer type: object collation: @@ -120615,9 +120929,12 @@ spec: description: Specifies if connections must use Cloud SQL connectors. type: string crashSafeReplication: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: boolean dataCacheConfig: description: Data cache configurations. @@ -120674,11 +120991,13 @@ spec: description: The maximum size, in GB, to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. + format: int64 type: integer diskSize: description: The size of data disk, in GB. Size of a running instance cannot be reduced but can be increased. The minimum value is 10GB. + format: int64 type: integer diskType: description: 'Immutable. The type of data disk: PD_SSD or PD_HDD. @@ -120698,10 +121017,12 @@ spec: description: Number of query execution plans captured by Insights per minute for all queries combined. Between 0 and 20. Default to 5. + format: int64 type: integer queryStringLength: description: Maximum query length stored in bytes. Between 256 and 4500. Default to 1024. + format: int64 type: integer recordApplicationTags: description: True if Query Insights will record application @@ -120763,14 +121084,15 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a - `ComputeNetwork` resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` + resource. type: string type: object pscConfig: @@ -120823,9 +121145,11 @@ spec: properties: day: description: Day of week (1-7), starting on Monday. + format: int64 type: integer hour: description: Hour of day (0-23), ignored if day not set. + format: int64 type: integer updateTrack: description: Receive updates earlier (canary) or later (stable). @@ -120844,6 +121168,7 @@ spec: type: boolean minLength: description: Minimum number of characters allowed. + format: int64 type: integer passwordChangeInterval: description: Minimum interval after which the password can @@ -120851,6 +121176,7 @@ spec: type: string reuseInterval: description: Number of previous passwords that cannot be reused. + format: int64 type: integer required: - enablePasswordPolicy @@ -120859,9 +121185,12 @@ spec: description: Pricing plan for this instance, can only be PER_USE. type: string replicationType: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: string sqlServerAuditConfig: properties: @@ -120883,14 +121212,15 @@ spec: - external properties: external: - description: 'Allowed value: The `url` field of a `StorageBucket` - resource.' + description: The StorageBucket selfLink, when not managed + by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `StorageBucket` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `StorageBucket` + resource. type: string type: object retentionInterval: @@ -120930,8 +121260,8 @@ spec: type: string type: array conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the SQLInstance's current state. items: properties: lastTransitionTime: @@ -120985,6 +121315,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer privateIpAddress: type: string @@ -121026,18 +121357,12 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121213,7 +121538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121454,7 +121779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121624,7 +121949,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122031,7 +122356,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122217,7 +122542,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122385,7 +122710,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122588,7 +122913,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122750,7 +123075,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123388,7 +123713,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123571,7 +123896,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123748,7 +124073,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123913,7 +124238,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124087,7 +124412,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124307,7 +124632,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124694,7 +125019,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125141,7 +125466,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125286,7 +125611,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125522,7 +125847,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125737,7 +126062,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125925,7 +126250,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126435,7 +126760,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126617,7 +126942,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126807,7 +127132,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -127086,7 +127411,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -127278,7 +127603,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/install-bundles/install-bundle-namespaced/per-namespace-components.yaml b/install-bundles/install-bundle-namespaced/per-namespace-components.yaml index 3cf6cc94df..4034e804e9 100644 --- a/install-bundles/install-bundle-namespaced/per-namespace-components.yaml +++ b/install-bundles/install-bundle-namespaced/per-namespace-components.yaml @@ -16,7 +16,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 iam.gke.io/gcp-service-account: cnrm-system-${NAMESPACE?}@${PROJECT_ID?}.iam.gserviceaccount.com labels: cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} @@ -28,7 +28,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} cnrm.cloud.google.com/system: "true" @@ -47,7 +47,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} cnrm.cloud.google.com/system: "true" @@ -66,7 +66,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} cnrm.cloud.google.com/system: "true" @@ -85,7 +85,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} cnrm.cloud.google.com/system: "true" @@ -103,7 +103,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "8888" prometheus.io/scrape: "true" labels: @@ -127,7 +127,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} @@ -144,7 +144,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} @@ -156,7 +156,7 @@ spec: - --prometheus-scrape-endpoint=:8888 command: - /configconnector/manager - image: gcr.io/cnrm-eap/controller:4fd3fd6 + image: gcr.io/cnrm-eap/controller:e373e18 imagePullPolicy: Always name: manager ports: diff --git a/install-bundles/install-bundle-workload-identity/0-cnrm-system.yaml b/install-bundles/install-bundle-workload-identity/0-cnrm-system.yaml index 2c33001b45..17d752871e 100644 --- a/install-bundles/install-bundle-workload-identity/0-cnrm-system.yaml +++ b/install-bundles/install-bundle-workload-identity/0-cnrm-system.yaml @@ -16,7 +16,7 @@ apiVersion: v1 kind: Namespace metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-system @@ -25,7 +25,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 iam.gke.io/gcp-service-account: cnrm-system@${PROJECT_ID?}.iam.gserviceaccount.com labels: cnrm.cloud.google.com/system: "true" @@ -36,7 +36,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -46,7 +46,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-resource-stats-recorder @@ -56,7 +56,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-manager @@ -66,7 +66,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-cnrm-system-role @@ -87,7 +87,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-cnrm-system-role @@ -108,7 +108,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -1285,7 +1285,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role @@ -1335,7 +1335,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-cluster-role @@ -1393,7 +1393,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-ns-role @@ -1418,7 +1418,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-role @@ -1448,7 +1448,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -2236,7 +2236,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role @@ -2299,7 +2299,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role-binding @@ -2317,7 +2317,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role-binding @@ -2335,7 +2335,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-admin-binding @@ -2358,7 +2358,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-binding @@ -2375,7 +2375,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-binding @@ -2392,7 +2392,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-watcher-binding @@ -2409,7 +2409,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-binding @@ -2426,7 +2426,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-binding @@ -2443,7 +2443,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -2460,7 +2460,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "8888" prometheus.io/scrape: "true" labels: @@ -2482,7 +2482,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "48797" prometheus.io/scrape: "true" labels: @@ -2503,7 +2503,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2521,7 +2521,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2534,8 +2534,8 @@ spec: - /configconnector/recorder env: - name: CONFIG_CONNECTOR_VERSION - value: 1.121.0 - image: gcr.io/cnrm-eap/recorder:4fd3fd6 + value: 1.122.0 + image: gcr.io/cnrm-eap/recorder:e373e18 imagePullPolicy: Always name: recorder ports: @@ -2569,7 +2569,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2584,7 +2584,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2599,7 +2599,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: gcr.io/cnrm-eap/webhook:4fd3fd6 + image: gcr.io/cnrm-eap/webhook:e373e18 imagePullPolicy: Always name: webhook ports: @@ -2629,7 +2629,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/system: "true" @@ -2644,7 +2644,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/system: "true" @@ -2654,7 +2654,7 @@ spec: - --prometheus-scrape-endpoint=:8888 command: - /configconnector/manager - image: gcr.io/cnrm-eap/controller:4fd3fd6 + image: gcr.io/cnrm-eap/controller:e373e18 imagePullPolicy: Always name: manager ports: @@ -2684,7 +2684,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2699,7 +2699,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2707,7 +2707,7 @@ spec: containers: - command: - /configconnector/deletiondefender - image: gcr.io/cnrm-eap/deletiondefender:4fd3fd6 + image: gcr.io/cnrm-eap/deletiondefender:e373e18 imagePullPolicy: Always name: deletiondefender ports: @@ -2738,7 +2738,7 @@ kind: HorizontalPodAutoscaler metadata: annotations: autoscaling.alpha.kubernetes.io/metrics: '[{"type":"Resource","resource":{"name":"memory","targetAverageUtilization":70}}]' - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook diff --git a/install-bundles/install-bundle-workload-identity/crds.yaml b/install-bundles/install-bundle-workload-identity/crds.yaml index 1413d71107..13f5a24abc 100644 --- a/install-bundles/install-bundle-workload-identity/crds.yaml +++ b/install-bundles/install-bundle-workload-identity/crds.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -264,7 +264,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -650,7 +650,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -780,7 +780,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -949,7 +949,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -1262,7 +1262,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -2456,7 +2456,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -2895,7 +2895,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -3617,6 +3617,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -4328,6 +4336,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -4350,7 +4366,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -4917,7 +4933,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5113,7 +5129,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5387,7 +5403,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5546,7 +5562,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5710,7 +5726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5883,7 +5899,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6027,7 +6043,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6157,7 +6173,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6285,7 +6301,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -6460,7 +6476,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6590,7 +6606,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6766,7 +6782,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6895,7 +6911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -7189,7 +7205,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7324,7 +7340,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7576,7 +7592,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7751,7 +7767,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7884,7 +7900,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -8585,7 +8601,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -8735,7 +8751,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9186,7 +9202,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9553,7 +9569,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9755,7 +9771,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9926,7 +9942,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10106,7 +10122,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10282,7 +10298,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10509,7 +10525,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10701,7 +10717,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10875,7 +10891,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11133,7 +11149,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11543,7 +11559,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11843,7 +11859,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -12699,7 +12715,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -12886,7 +12902,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13076,7 +13092,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13338,7 +13354,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13923,7 +13939,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14111,7 +14127,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14332,7 +14348,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14459,15 +14475,14 @@ spec: - external properties: external: - description: The KMSCryptoKeyRef selfLink, when not managed - by KCC. + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: The `name` field of a `KMSCryptoKeyRef` resource. + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: The `namespace` field of a `KMSCryptoKeyRef` - resource. + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object numNodes: @@ -14565,7 +14580,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14738,7 +14753,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15197,7 +15212,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15465,7 +15480,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15890,7 +15905,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -16331,7 +16346,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -16684,7 +16699,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -17505,7 +17520,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -17822,7 +17837,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18061,7 +18076,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18292,7 +18307,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18522,7 +18537,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20030,7 +20045,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20099,7 +20114,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -20282,6 +20297,9 @@ spec: of 16 bits, with an automatically determined IP within the peered VPC. If unspecified, a value of `/24` will be used. type: string + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf peeredNetworkRef: description: Immutable. The network definition that the workers are peered to. If this section is left empty, the workers @@ -20304,7 +20322,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -20314,6 +20332,9 @@ spec: resource. type: string type: object + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf type: object workerConfig: description: Machine configuration for the workers in the pool. @@ -20406,7 +20427,7 @@ spec: type: object type: array externalRef: - description: A unique specifier for the CloudBuild workerpool resource + description: A unique Config Connector specifier for the resource in GCP. type: string observedGeneration: @@ -20485,7 +20506,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20959,7 +20980,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -21391,7 +21412,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -21589,7 +21610,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -21856,7 +21877,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22251,7 +22272,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22430,7 +22451,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22692,7 +22713,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -23230,7 +23251,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23501,7 +23522,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23772,7 +23793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24227,7 +24248,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24497,7 +24518,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24711,7 +24732,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -25990,7 +26011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26204,7 +26225,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26381,7 +26402,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -27145,7 +27166,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -27296,7 +27317,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27516,7 +27537,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27708,7 +27729,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -28050,7 +28071,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -28428,7 +28449,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -28442,6 +28463,7 @@ spec: categories: - gcp kind: ComputeForwardingRule + listKind: ComputeForwardingRuleList plural: computeforwardingrules shortNames: - gcpcomputeforwardingrule @@ -28469,16 +28491,17 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: ComputeForwardingRule is the Schema for the compute API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object @@ -28519,9 +28542,8 @@ spec: whether the PSC endpoint can be accessed from another region. type: boolean backendServiceRef: - description: |- - A ComputeBackendService to receive the matched traffic. This is - used only for internal load balancing. + description: A ComputeBackendService to receive the matched traffic. + This is used only for internal load balancing. oneOf: - not: required: @@ -28538,20 +28560,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeBackendService` - resource.' + description: The ComputeBackendService selflink in the form "projects/{{project}}/global/backendServices/{{name}}" + or "projects/{{project}}/regions/{{region}}/backendServices/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeBackendService` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeBackendService` + resource. type: string type: object description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. + description: Immutable. An optional description of this resource. + Provide this property when you create the resource. type: string ipAddress: description: |- @@ -28574,11 +28597,6 @@ spec: forwarding rule. By default, if this field is empty, an ephemeral internal IP address will be automatically allocated from the IP range of the subnet or network configured for this forwarding rule. - oneOf: - - required: - - addressRef - - required: - - ip properties: addressRef: oneOf: @@ -28597,14 +28615,14 @@ spec: - external properties: external: - description: 'Allowed value: The `address` field of a `ComputeAddress` - resource.' + description: The ComputeAddress selflink in the form "projects/{{project}}/regions/{{region}}/addresses/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeAddress` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeAddress` resource. type: string type: object ip: @@ -28686,14 +28704,12 @@ spec: items: properties: name: - description: |- - Immutable. Name of the metadata label. The length must be between - 1 and 1024 characters, inclusive. + description: Immutable. Name of the metadata label. The + length must be between 1 and 1024 characters, inclusive. type: string value: - description: |- - Immutable. The value that the label must match. The value has a maximum - length of 1024 characters. + description: Immutable. The value that the label must + match. The value has a maximum length of 1024 characters. type: string required: - name @@ -28716,11 +28732,10 @@ spec: type: object type: array networkRef: - description: |- - This field is not used for external load balancing. For internal - load balancing, this field identifies the network that the load - balanced IP should belong to for this forwarding rule. If this - field is not specified, the default network will be used. + description: This field is not used for external load balancing. For + internal load balancing, this field identifies the network that + the load balanced IP should belong to for this forwarding rule. + If this field is not specified, the default network will be used. oneOf: - not: required: @@ -28737,14 +28752,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object networkTier: @@ -28778,7 +28793,6 @@ spec: [port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications) for details. - Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. @@ -28800,7 +28814,6 @@ spec: * By internal TCP/UDP load balancers, backend service-based network load balancers, internal protocol forwarding and when protocol is not L3_DEFAULT. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. Only packets addressed to these ports will be forwarded to the backends configured with this @@ -28891,37 +28904,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object target: - description: |- - The target resource to receive the matched traffic. The forwarded - traffic must be of a type appropriate to the target object. For - INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets + description: The target resource to receive the matched traffic. The + forwarded traffic must be of a type appropriate to the target object. + For INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets are valid. - oneOf: - - required: - - serviceAttachmentRef - - required: - - targetGRPCProxyRef - - required: - - targetHTTPProxyRef - - required: - - targetHTTPSProxyRef - - required: - - targetSSLProxyRef - - required: - - targetTCPProxyRef - - required: - - targetVPNGatewayRef properties: serviceAttachmentRef: oneOf: @@ -28940,14 +28937,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeServiceAttachment` - resource.' + description: The ComputeServiceAttachment selflink in the + form "projects/{{project}}/regions/{{region}}/serviceAttachments/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeServiceAttachment` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeServiceAttachment` + resource. type: string type: object targetGRPCProxyRef: @@ -28967,14 +28967,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetGRPCProxy` - resource.' + description: The ComputeTargetGrpcProxy selflink in the form + "projects/{{project}}/global/targetGrpcProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetGrpcProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetGrpcProxy` + resource. type: string type: object targetHTTPProxyRef: @@ -28994,14 +28997,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPProxy` - resource.' + description: The ComputeTargetHTTPProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPProxy` + resource. type: string type: object targetHTTPSProxyRef: @@ -29021,14 +29028,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPSProxy` - resource.' + description: The ComputeTargetHTTPSProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPSProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPSProxy` + resource. type: string type: object targetSSLProxyRef: @@ -29048,14 +29059,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetSSLProxy` - resource.' + description: The ComputeTargetSSLProxy selflink in the form + "projects/{{project}}/global/targetSslProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetSSLProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetSSLProxy` + resource. type: string type: object targetTCPProxyRef: @@ -29075,14 +29089,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetTCPProxy` - resource.' + description: The ComputeTargetTCPProxy selflink in the form + "projects/{{project}}/global/targetTcpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetTcpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetTCPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetTCPProxy` + resource. type: string type: object targetVPNGatewayRef: @@ -29102,14 +29120,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetVPNGateway` - resource.' + description: The ComputeTargetVPNGateway selflink in the form + "projects/{{project}}/regions/{{region}}/targetVpnGateways/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetVPNGateway` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetVPNGateway` + resource. type: string type: object type: object @@ -29126,8 +29147,8 @@ spec: if the current Forwarding Rule does not have sourceIPRanges specified.' type: string conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -29154,9 +29175,12 @@ spec: creationTimestamp: description: Creation timestamp in RFC3339 text format. type: string + externalRef: + description: A unique Config Connector specifier for the resource + in GCP. + type: string labelFingerprint: - description: |- - The fingerprint used for optimistic locking of this resource. Used + description: The fingerprint used for optimistic locking of this resource. Used internally during updates. type: string observedGeneration: @@ -29165,6 +29189,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer pscConnectionId: description: The PSC connection id of the PSC Forwarding Rule. @@ -29183,6 +29208,160 @@ spec: This field is only used for INTERNAL load balancing. type: string type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: alpha + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: computeglobalnetworkendpointgroups.compute.cnrm.cloud.google.com +spec: + group: compute.cnrm.cloud.google.com + names: + categories: + - gcp + kind: ComputeGlobalNetworkEndpointGroup + plural: computeglobalnetworkendpointgroups + shortNames: + - gcpcomputeglobalnetworkendpointgroup + - gcpcomputeglobalnetworkendpointgroups + singular: computeglobalnetworkendpointgroup + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + defaultPort: + description: |- + Immutable. The default port used if the port number is not specified in the + network endpoint. + type: integer + description: + description: |- + Immutable. An optional description of this resource. Provide this property when + you create the resource. + type: string + networkEndpointType: + description: 'Immutable. Type of network endpoints in this network + endpoint group. Possible values: ["INTERNET_IP_PORT", "INTERNET_FQDN_PORT"].' + type: string + projectRef: + description: The project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `Project` resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The name of the resource. Used for + creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + required: + - networkEndpointType + - projectRef + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + selfLink: + type: string + type: object required: - spec type: object @@ -29201,169 +29380,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: computeglobalnetworkendpointgroups.compute.cnrm.cloud.google.com -spec: - group: compute.cnrm.cloud.google.com - names: - categories: - - gcp - kind: ComputeGlobalNetworkEndpointGroup - plural: computeglobalnetworkendpointgroups - shortNames: - - gcpcomputeglobalnetworkendpointgroup - - gcpcomputeglobalnetworkendpointgroups - singular: computeglobalnetworkendpointgroup - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - defaultPort: - description: |- - Immutable. The default port used if the port number is not specified in the - network endpoint. - type: integer - description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. - type: string - networkEndpointType: - description: 'Immutable. Type of network endpoints in this network - endpoint group. Possible values: ["INTERNET_IP_PORT", "INTERNET_FQDN_PORT"].' - type: string - projectRef: - description: The project that this resource belongs to. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `name` field of a `Project` resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - resourceID: - description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. - type: string - required: - - networkEndpointType - - projectRef - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - selfLink: - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29521,7 +29538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29985,7 +30002,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30146,7 +30163,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30307,7 +30324,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30665,7 +30682,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -31444,7 +31461,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -31626,7 +31643,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -31829,7 +31846,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -32862,7 +32879,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -33894,7 +33911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34219,7 +34236,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34436,7 +34453,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34781,7 +34798,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34991,7 +35008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35203,7 +35220,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35374,7 +35391,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35580,7 +35597,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35968,7 +35985,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36149,7 +36166,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36349,7 +36366,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36523,7 +36540,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36813,7 +36830,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36994,7 +37011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37139,7 +37156,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37268,7 +37285,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37494,7 +37511,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -37894,7 +37911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38191,7 +38208,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38309,7 +38326,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38742,7 +38759,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38919,7 +38936,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39221,7 +39238,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39518,7 +39535,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39714,7 +39731,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39928,7 +39945,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40252,7 +40269,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40544,7 +40561,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41001,7 +41018,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41357,7 +41374,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41584,7 +41601,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41863,7 +41880,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42484,7 +42501,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -42831,7 +42848,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42937,7 +42954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43081,7 +43098,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43480,7 +43497,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43698,7 +43715,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43861,7 +43878,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44155,7 +44172,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44333,7 +44350,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44512,7 +44529,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44870,7 +44887,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45095,7 +45112,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45350,7 +45367,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45609,7 +45626,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45776,7 +45793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45937,7 +45954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48660,7 +48677,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48864,7 +48881,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -49236,7 +49253,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -49552,7 +49569,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -50141,7 +50158,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -50377,7 +50394,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -50728,7 +50745,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -52104,18 +52121,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect @@ -52604,7 +52620,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53308,18 +53324,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect @@ -53529,7 +53544,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53801,7 +53816,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53967,7 +53982,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54163,7 +54178,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54348,7 +54363,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54580,7 +54595,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54754,7 +54769,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54768,6 +54783,7 @@ spec: categories: - gcp kind: DataflowFlexTemplateJob + listKind: DataflowFlexTemplateJobList plural: dataflowflextemplatejobs shortNames: - gcpdataflowflextemplatejob @@ -54795,42 +54811,45 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: DataflowFlexTemplateJob is the Schema for the DataflowFlexTemplateJob + API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: + description: DataflowFlexTemplateJobSpec defines the desired state of + DataflowFlexTemplateJob properties: additionalExperiments: - description: List of experiments that should be used by the job. An - example value is ["enable_stackdriver_agent_metrics"]. + description: Additional experiment flags for the job. items: type: string type: array autoscalingAlgorithm: - description: The algorithm to use for autoscaling. + description: The algorithm to use for autoscaling type: string containerSpecGcsPath: + description: Cloud Storage path to a file with json serialized ContainerSpec + as content. type: string enableStreamingEngine: - description: Immutable. Indicates if the job should use the streaming - engine feature. + description: Whether to enable Streaming Engine for the job. type: boolean ipConfiguration: - description: The configuration for VM IPs. Options are "WORKER_IP_PUBLIC" - or "WORKER_IP_PRIVATE". + description: Configuration for VM IPs. type: string kmsKeyNameRef: - description: The name for the Cloud KMS key for the job. + description: The Cloud KMS key for the job. oneOf: - not: required: @@ -54847,14 +54866,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object launcherMachineType: @@ -54862,14 +54881,18 @@ spec: is n1-standard-1. type: string machineType: - description: The machine type to use for the job. + description: The machine type to use for the job. Defaults to the + value from the template if not specified. type: string maxWorkers: - description: Immutable. The maximum number of Google Compute Engine - instances to be made available to your pipeline during execution, - from 1 to 1000. + description: The maximum number of Google Compute Engine instances + to be made available to your pipeline during execution, from 1 to + 1000. + format: int32 type: integer networkRef: + description: Network to which VMs will be assigned. If empty or unspecified, + the service will use the network "default". oneOf: - not: required: @@ -54886,21 +54909,23 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object numWorkers: - description: Immutable. The initial number of Google Compute Engine - instances for the job. + description: The initial number of Google Compute Engine instances + for the job. + format: int32 type: integer parameters: + description: The parameters for FlexTemplate. Ex. {"num_workers":"5"} type: object x-kubernetes-preserve-unknown-fields: true region: @@ -54913,6 +54938,8 @@ spec: the SDK. Note this field is only valid for portable pipelines. type: string serviceAccountEmailRef: + description: The email address of the service account to run the job + as. oneOf: - not: required: @@ -54929,8 +54956,7 @@ spec: - external properties: external: - description: 'Allowed value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -54940,10 +54966,15 @@ spec: type: string type: object stagingLocation: - description: The Cloud Storage path to use for staging files. Must - be a valid Cloud Storage URL, beginning with gs://. + description: The Cloud Storage path for staging local files. Must + be a valid Cloud Storage URL, beginning with `gs://`. type: string subnetworkRef: + description: Subnetwork to which VMs will be assigned, if desired. + You can specify a subnetwork using either a complete URL or an abbreviated + path. Expected to be of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" + or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is + located in a Shared VPC network, you must use the complete URL. oneOf: - not: required: @@ -54960,34 +54991,36 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object tempLocation: description: The Cloud Storage path to use for temporary files. Must - be a valid Cloud Storage URL, beginning with gs://. + be a valid Cloud Storage URL, beginning with `gs://`. type: string transformNameMapping: - description: Only applicable when updating a pipeline. Map of transform - name prefixes of the job to be replaced with the corresponding name - prefixes of the new job. + description: Map of transform name prefixes of the job to be replaced + with the corresponding name prefixes of the new job. Only applicable + when updating a pipeline. type: object x-kubernetes-preserve-unknown-fields: true required: - containerSpecGcsPath type: object status: + description: DataflowFlexTemplateJobStatus defines the config connector + machine state of DataflowFlexTemplateJob properties: conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -55019,11 +55052,24 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer state: + description: |- + The current state of the job. + + Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise + specified. + + A job in the `JOB_STATE_RUNNING` state may asynchronously enter a + terminal state. After a job has reached a terminal state, no + further state updates may be made. + + This field may be mutated by the Cloud Dataflow service; + callers cannot mutate it. type: string type: - description: The type of this job, selected from the JobType enum. + description: The type of Cloud Dataflow job. type: string type: object required: @@ -55033,18 +55079,12 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -55330,7 +55370,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -55387,29 +55427,127 @@ spec: type: object spec: properties: + displayName: + description: Optional. The repository's user-friendly name. + type: string gitRemoteSettings: description: Optional. If set, configures this repository to be linked to a Git remote. properties: - authenticationTokenSecretVersion: + authenticationTokenSecretVersionRef: description: The name of the Secret Manager secret version to use as an authentication token for Git operations. Must be in the format projects/* /secrets/* /versions/*. - type: string + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object defaultBranch: description: The Git remote's default branch name. type: string - tokenStatus: - description: Indicates the status of the Git access token. https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories#TokenStatus. - type: string + sshAuthenticationConfig: + description: Authentication fields for remote uris using SSH protocol. + properties: + hostPublicKey: + description: Content of a public SSH key to verify an identity + of a remote Git host. + type: string + userPrivateKeySecretVersionRef: + description: The name of the Secret Manager secret version + to use as a ssh private key for Git operations. Must be + in the format projects/*/secrets/*/versions/* . + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object + required: + - hostPublicKey + - userPrivateKeySecretVersionRef + type: object url: description: The Git remote's URL. type: string required: - - authenticationTokenSecretVersion - defaultBranch - url type: object + npmrcEnvironmentVariablesSecretVersionRef: + description: Optional. The name of the Secret Manager secret version + to be used to interpolate variables into the .npmrc file for package + installation operations. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object projectRef: description: The project that this resource belongs to. oneOf: @@ -55450,6 +55588,39 @@ spec: creation and acquisition. When unset, the value of `metadata.name` is used as the default. type: string + serviceAccountRef: + description: Optional. The service account reference to run workflow + invocations under. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `email` field of an `IAMServiceAccount` resource. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + setAuthenticatedUserAdmin: + description: Optional. Input only. If set to true, the authenticated + user will be granted the roles/dataform.admin role on the created + repository. + type: boolean workspaceCompilationOverrides: description: Optional. If set, fields of workspaceCompilationOverrides override the default compilation settings that are specified in @@ -55500,6 +55671,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the DataformReposity resource + in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -55508,6 +55683,10 @@ spec: the resource. format: int64 type: integer + observedState: + description: ObservedState is the state of the resource as most recently + observed in GCP. + type: object type: object required: - spec @@ -55521,7 +55700,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -55800,7 +55979,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -56095,7 +56274,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -57910,7 +58089,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -59852,7 +60031,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60024,7 +60203,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60625,7 +60804,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60818,7 +60997,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61752,7 +61931,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61967,7 +62146,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62152,7 +62331,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62366,7 +62545,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62561,7 +62740,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -63111,7 +63290,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -63331,7 +63510,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64429,7 +64608,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64638,7 +64817,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64832,7 +65011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -65029,7 +65208,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -65266,7 +65445,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -69442,7 +69621,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -70054,7 +70233,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -71530,7 +71709,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -71901,7 +72080,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -72286,7 +72465,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -72482,7 +72661,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73454,7 +73633,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73633,7 +73812,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73829,7 +74008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73952,7 +74131,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74117,7 +74296,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74653,7 +74832,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74904,7 +75083,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75143,7 +75322,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75323,7 +75502,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75547,7 +75726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75689,7 +75868,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76235,7 +76414,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76457,7 +76636,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76786,7 +76965,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -76955,7 +77134,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77142,7 +77321,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77319,7 +77498,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77463,7 +77642,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77626,7 +77805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77778,7 +77957,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77926,7 +78105,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78073,7 +78252,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78227,7 +78406,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78440,7 +78619,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78737,7 +78916,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -78828,10 +79007,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -78925,10 +79102,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -78968,7 +79143,9 @@ spec: type: string type: object hierarchyController: - description: Hierarchy Controller configuration for the cluster. + description: 'Hierarchy Controller is no longer available. + Use https://github.com/kubernetes-sigs/hierarchical-namespaces + instead.' properties: enableHierarchicalResourceQuota: description: Whether hierarchical resource quota is enabled @@ -79280,7 +79457,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -79546,7 +79723,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -79911,7 +80088,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80044,7 +80221,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80202,7 +80379,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80364,7 +80541,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80678,7 +80855,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80879,7 +81056,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81080,7 +81257,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81241,7 +81418,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81381,7 +81558,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81706,7 +81883,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81934,7 +82111,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82174,7 +82351,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82353,7 +82530,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -82495,7 +82672,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -82853,7 +83030,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83034,7 +83211,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83330,7 +83507,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83497,7 +83674,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83623,7 +83800,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83777,7 +83954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -84469,7 +84646,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84628,7 +84805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84833,7 +85010,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85016,7 +85193,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85240,7 +85417,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85404,7 +85581,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85617,7 +85794,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85834,7 +86011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85987,7 +86164,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86180,7 +86357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86369,7 +86546,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86549,7 +86726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86672,7 +86849,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86877,7 +87054,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -87166,7 +87343,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -87441,7 +87618,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -87897,7 +88074,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -88301,7 +88478,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -88605,7 +88782,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -88942,7 +89119,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -89118,7 +89295,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -90055,7 +90232,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -98130,7 +98307,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98321,7 +98498,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98616,7 +98793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98743,7 +98920,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -99044,7 +99221,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -99615,7 +99792,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -99774,7 +99951,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -100153,7 +100330,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -100335,7 +100512,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -100389,6 +100566,9 @@ spec: description: description: A description of this resource. type: string + location: + description: Immutable. Location of the resource. + type: string networkRef: description: 'The resource path of the consumer network. Example: - projects/{projectNumOrId}/global/networks/{resourceId}.' @@ -100409,7 +100589,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -100418,6 +100598,38 @@ spec: description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object pscConfig: description: Configuration used for Private Service Connect connections. Used when Infrastructure is PSC. @@ -100476,6 +100688,9 @@ spec: services have a prefix of gcp. For example, gcp-cloud-sql. 3rd party services do not. For example, test-service-a3dfcx. type: string + required: + - location + - projectRef type: object status: description: NetworkConnectivityServiceConnectionPolicyStatus defines @@ -100644,7 +100859,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101031,7 +101246,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -101306,7 +101521,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101564,7 +101779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101793,7 +102008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -102037,7 +102252,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -102274,7 +102489,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -102621,7 +102836,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -103528,7 +103743,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -103849,7 +104064,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -104075,7 +104290,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -104542,7 +104757,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105276,7 +105491,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105452,7 +105667,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105782,7 +105997,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -106103,7 +106318,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -106323,7 +106538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -106484,7 +106699,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -107253,7 +107468,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -108255,7 +108470,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -108946,7 +109161,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -109082,7 +109297,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -109585,7 +109800,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -110590,7 +110805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -111501,7 +111716,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -111917,7 +112132,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112142,7 +112357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112298,7 +112513,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112465,7 +112680,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112669,7 +112884,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112824,7 +113039,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113332,7 +113547,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113549,7 +113764,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -113803,7 +114018,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113865,6 +114080,9 @@ spec: description: Optional. The delete operation will fail when the value is set to true. type: boolean + location: + description: Immutable. Location of the resource. + type: string nodeType: description: Optional. The type of a redis node in the cluster. NodeType determines the underlying machine-type of a redis node. @@ -113897,6 +114115,38 @@ spec: type: string type: object type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object pscConfigs: description: Required. Each PscConfig configures the consumer network where IPs will be designated to the cluster for client access through @@ -113924,7 +114174,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -113934,6 +114184,8 @@ spec: resource. type: string type: object + required: + - networkRef type: object type: array redisConfigs: @@ -113973,6 +114225,9 @@ spec: MULTI_ZONE clusters. type: string type: object + required: + - location + - projectRef type: object status: description: RedisClusterStatus defines the config connector machine state @@ -114043,39 +114298,11 @@ spec: description: Output only. Customer configuration for where the endpoint is created and accessed from. properties: - networkRef: + network: description: Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: The compute network selflink of form - "projects//global/networks/", - when not managed by KCC. - type: string - name: - description: The `name` field of a `ComputeNetwork` - resource. - type: string - namespace: - description: The `namespace` field of a `ComputeNetwork` - resource. - type: string - type: object + type: string type: object type: object type: array @@ -114153,7 +114380,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114671,7 +114898,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114849,7 +115076,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115130,7 +115357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115717,6 +115944,49 @@ spec: description: A list of Volumes to make available to containers. items: properties: + cloudSqlInstance: + description: For Cloud SQL volumes, contains the specific + instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run + for more information on how to connect Cloud SQL and + Cloud Run. + properties: + instanceRefs: + items: + description: 'The Cloud SQL instance connection + names, as can be found in https://console.cloud.google.com/sql/instances. + Visit https://cloud.google.com/sql/docs/mysql/connect-run + for more information on how to connect Cloud + SQL and Cloud Run. Format: {project}:{location}:{instance}' + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `connectionName` + field of a `SQLInstance` resource.' + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More + info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + type: array + type: object emptyDir: description: Ephemeral storage used as a shared volume. properties: @@ -116132,7 +116402,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117262,7 +117532,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117602,7 +117872,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117818,7 +118088,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117859,7 +118129,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: SecureSourceManagerInstance is the Schema for the monitoring + description: SecureSourceManagerInstance is the Schema for the SecureSourceManagerInstance API properties: apiVersion: @@ -117875,16 +118145,13 @@ spec: metadata: type: object spec: + description: SecureSourceManagerInstanceSpec defines the desired state + of SecureSourceManagerInstance properties: kmsKey: description: Optional. Immutable. Customer-managed encryption key name, in the format projects/*/locations/*/keyRings/*/cryptoKeys/*. type: string - labels: - additionalProperties: - type: string - description: Optional. Labels as key value pairs. - type: object location: description: Immutable. Location of the instance. type: string @@ -117930,10 +118197,12 @@ spec: - projectRef type: object status: + description: SecureSourceManagerInstanceStatus defines the config connector + machine state of SecureSourceManagerInstance properties: conditions: description: Conditions represent the latest available observations - of the SecureSourceManagerInstance's current state. + of the object's current state. items: properties: lastTransitionTime: @@ -117957,6 +118226,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the SecureSourceManagerInstance + resource in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -117966,7 +118239,8 @@ spec: format: int64 type: integer observedState: - description: ObservedState is the latest GCP state. + description: ObservedState is the state of the resource as most recently + observed in GCP. properties: hostConfig: description: Output only. A list of hostnames for this instance. @@ -117975,10 +118249,10 @@ spec: description: 'Output only. API hostname. This is the hostname to use for **Host: Data Plane** endpoints.' type: string - gitHttp: + gitHTTP: description: Output only. Git HTTP hostname. type: string - gitSsh: + gitSSH: description: Output only. Git SSH hostname. type: string html: @@ -117994,8 +118268,6 @@ spec: type: string type: object type: object - required: - - spec type: object served: true storage: true @@ -118006,7 +118278,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118211,7 +118483,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118374,7 +118646,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118594,7 +118866,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118751,7 +119023,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118903,7 +119175,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119050,7 +119322,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119228,7 +119500,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119369,7 +119641,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119551,7 +119823,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119750,7 +120022,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119959,7 +120231,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120099,7 +120371,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120270,13 +120542,12 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" cnrm.cloud.google.com/stability-level: stable cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" name: sqlinstances.sql.cnrm.cloud.google.com spec: group: sql.cnrm.cloud.google.com @@ -120284,6 +120555,7 @@ spec: categories: - gcp kind: SQLInstance + listKind: SQLInstanceList plural: sqlinstances shortNames: - gcpsqlinstance @@ -120311,23 +120583,80 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: SQLInstance is the Schema for the sql API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: properties: + cloneSource: + description: Create this database as a clone of a source instance. + Immutable. + properties: + binLogCoordinates: + description: Binary log coordinates, if specified, identify the + position up to which the source instance is cloned. If not specified, + the source instance is cloned up to the most recent binary log + coordinates. + properties: + binLogFileName: + description: Name of the binary log file for a Cloud SQL instance. + type: string + binLogPosition: + description: Position (offset) within the binary log file. + format: int64 + type: integer + type: object + databaseNames: + description: (SQL Server only) Clone only the specified databases + from the source instance. Clone all databases if empty. + items: + type: string + type: array + pointInTime: + description: Timestamp, if specified, identifies the time to which + the source instance is cloned. + type: string + sqlInstanceRef: + description: The source SQLInstance to clone + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The SQLInstance selfLink, when not managed by + Config Connector. + type: string + name: + description: The `name` field of a `SQLInstance` resource. + type: string + namespace: + description: The `namespace` field of a `SQLInstance` resource. + type: string + type: object + type: object databaseVersion: - default: MYSQL_5_6 description: The MySQL, PostgreSQL or SQL Server (beta) version to use. Supported values include MYSQL_5_6, MYSQL_5_7, MYSQL_8_0, POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, POSTGRES_14, @@ -120352,14 +120681,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object instanceType: @@ -120386,14 +120715,14 @@ spec: - external properties: external: - description: 'Allowed value: The `name` field of a `SQLInstance` - resource.' + description: The SQLInstance selfLink, when not managed by Config + Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `SQLInstance` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `SQLInstance` resource. type: string type: object region: @@ -120423,6 +120752,7 @@ spec: connectRetryInterval: description: Immutable. The number of seconds between connect retries. MySQL's default is 60 seconds. + format: int64 type: integer dumpFilePath: description: Immutable. Path to a SQL file in Google Cloud Storage @@ -120437,20 +120767,10 @@ spec: type: boolean masterHeartbeatPeriod: description: Immutable. Time in ms between replication heartbeats. + format: int64 type: integer password: description: Immutable. Password for the replication connection. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -120472,8 +120792,8 @@ spec: from. type: string required: - - name - key + - name type: object type: object type: object @@ -120495,17 +120815,6 @@ spec: type: string rootPassword: description: Initial root password. Required for MS SQL Server. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -120526,8 +120835,8 @@ spec: description: Name of the Secret to extract a value from. type: string required: - - name - key + - name type: object type: object type: object @@ -120553,22 +120862,25 @@ spec: threadsPerCore: description: The number of threads per physical core. Can be 1 or 2. + format: int64 type: integer type: object authorizedGaeApplications: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. items: type: string type: array availabilityType: - description: |- - The availability type of the Cloud SQL instance, high availability - (REGIONAL) or single zone (ZONAL). For all instances, ensure that - settings.backup_configuration.enabled is set to true. - For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled is set to true. - For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled + description: The availability type of the Cloud SQL instance, + high availability (REGIONAL) or single zone (ZONAL). For all + instances, ensure that settings.backup_configuration.enabled + is set to true. For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled + is set to true. For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled is set to true. Defaults to ZONAL. type: string backupConfiguration: @@ -120577,6 +120889,7 @@ spec: properties: retainedBackups: description: Number of backups to retain. + format: int64 type: integer retentionUnit: description: The unit that 'retainedBackups' represents. @@ -120606,6 +120919,7 @@ spec: description: The number of days of transaction logs we retain for point in time restore, from 1-7. (For PostgreSQL Enterprise Plus instances, from 1 to 35.). + format: int64 type: integer type: object collation: @@ -120615,9 +120929,12 @@ spec: description: Specifies if connections must use Cloud SQL connectors. type: string crashSafeReplication: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: boolean dataCacheConfig: description: Data cache configurations. @@ -120674,11 +120991,13 @@ spec: description: The maximum size, in GB, to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. + format: int64 type: integer diskSize: description: The size of data disk, in GB. Size of a running instance cannot be reduced but can be increased. The minimum value is 10GB. + format: int64 type: integer diskType: description: 'Immutable. The type of data disk: PD_SSD or PD_HDD. @@ -120698,10 +121017,12 @@ spec: description: Number of query execution plans captured by Insights per minute for all queries combined. Between 0 and 20. Default to 5. + format: int64 type: integer queryStringLength: description: Maximum query length stored in bytes. Between 256 and 4500. Default to 1024. + format: int64 type: integer recordApplicationTags: description: True if Query Insights will record application @@ -120763,14 +121084,15 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a - `ComputeNetwork` resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` + resource. type: string type: object pscConfig: @@ -120823,9 +121145,11 @@ spec: properties: day: description: Day of week (1-7), starting on Monday. + format: int64 type: integer hour: description: Hour of day (0-23), ignored if day not set. + format: int64 type: integer updateTrack: description: Receive updates earlier (canary) or later (stable). @@ -120844,6 +121168,7 @@ spec: type: boolean minLength: description: Minimum number of characters allowed. + format: int64 type: integer passwordChangeInterval: description: Minimum interval after which the password can @@ -120851,6 +121176,7 @@ spec: type: string reuseInterval: description: Number of previous passwords that cannot be reused. + format: int64 type: integer required: - enablePasswordPolicy @@ -120859,9 +121185,12 @@ spec: description: Pricing plan for this instance, can only be PER_USE. type: string replicationType: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: string sqlServerAuditConfig: properties: @@ -120883,14 +121212,15 @@ spec: - external properties: external: - description: 'Allowed value: The `url` field of a `StorageBucket` - resource.' + description: The StorageBucket selfLink, when not managed + by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `StorageBucket` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `StorageBucket` + resource. type: string type: object retentionInterval: @@ -120930,8 +121260,8 @@ spec: type: string type: array conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the SQLInstance's current state. items: properties: lastTransitionTime: @@ -120985,6 +121315,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer privateIpAddress: type: string @@ -121026,18 +121357,12 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121213,7 +121538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121454,7 +121779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121624,7 +121949,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122031,7 +122356,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122217,7 +122542,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122385,7 +122710,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122588,7 +122913,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122750,7 +123075,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123388,7 +123713,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123571,7 +123896,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123748,7 +124073,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123913,7 +124238,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124087,7 +124412,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124307,7 +124632,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -124694,7 +125019,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125141,7 +125466,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125286,7 +125611,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125522,7 +125847,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125737,7 +126062,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -125925,7 +126250,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126435,7 +126760,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126617,7 +126942,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -126807,7 +127132,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -127086,7 +127411,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -127278,7 +127603,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/mockgcp/Makefile b/mockgcp/Makefile index 03ec0cdad7..563bfefadf 100644 --- a/mockgcp/Makefile +++ b/mockgcp/Makefile @@ -52,14 +52,8 @@ gen-proto-no-fixup: ./apis/mockgcp/cloud/resourcemanager/v1/*.proto \ ./apis/mockgcp/storage/v1/*.proto \ ./third_party/googleapis/mockgcp/api/apikeys/v2/*.proto \ - ./third_party/googleapis/mockgcp/devtools/artifactregistry/v1/*.proto \ - ./third_party/googleapis/mockgcp/devtools/cloudbuild/v1/*.proto \ - ./third_party/googleapis/mockgcp/dataflow/v1beta3/*.proto \ - ./third_party/googleapis/mockgcp/iam/admin/v1/*.proto \ - ./third_party/googleapis/mockgcp/logging/v2/*.proto \ - ./third_party/googleapis/mockgcp/pubsub/v1/*.proto \ - ./third_party/googleapis/mockgcp/spanner/admin/database/v1/*.proto \ - ./third_party/googleapis/mockgcp/spanner/admin/instance/v1/*.proto \ + ./third_party/googleapis/mockgcp/api/serviceusage/v1/*.proto \ + ./third_party/googleapis/mockgcp/api/serviceusage/v1beta1/*.proto \ ./third_party/googleapis/mockgcp/cloud/aiplatform/v1beta1/annotation*.proto \ ./third_party/googleapis/mockgcp/cloud/aiplatform/v1beta1/data_item.proto \ ./third_party/googleapis/mockgcp/cloud/aiplatform/v1beta1/dataset*.proto \ @@ -68,37 +62,44 @@ gen-proto-no-fixup: ./third_party/googleapis/mockgcp/cloud/aiplatform/v1beta1/operation.proto \ ./third_party/googleapis/mockgcp/cloud/aiplatform/v1beta1/saved_query.proto \ ./third_party/googleapis/mockgcp/cloud/aiplatform/v1beta1/tensorboard*.proto \ - ./third_party/googleapis/mockgcp/cloud/alloydb/v1beta/*.proto \ ./third_party/googleapis/mockgcp/cloud/aiplatform/v1beta1/user_action_reference.proto \ - ./third_party/googleapis/mockgcp/cloud/billing/v1/*.proto \ + ./third_party/googleapis/mockgcp/cloud/alloydb/v1beta/*.proto \ ./third_party/googleapis/mockgcp/cloud/bigquery/connection/v1/*.proto \ + ./third_party/googleapis/mockgcp/cloud/billing/v1/*.proto \ ./third_party/googleapis/mockgcp/cloud/certificatemanager/v1/*.proto \ ./third_party/googleapis/mockgcp/cloud/common/*.proto \ ./third_party/googleapis/mockgcp/cloud/compute/v1/*.proto \ - ./third_party/googleapis/mockgcp/cloud/gkemulticloud/v1/*.proto \ ./third_party/googleapis/mockgcp/cloud/edgecontainer/v1/*.proto \ ./third_party/googleapis/mockgcp/cloud/edgenetwork/v1/*.proto \ ./third_party/googleapis/mockgcp/cloud/functions/v1/*.proto \ + ./third_party/googleapis/mockgcp/cloud/gkehub/v1beta/*.proto \ + ./third_party/googleapis/mockgcp/cloud/gkehub/v1beta/configmanagement/*.proto \ + ./third_party/googleapis/mockgcp/cloud/gkehub/v1beta/metering/*.proto \ + ./third_party/googleapis/mockgcp/cloud/gkehub/v1beta/multiclusteringress/*.proto \ + ./third_party/googleapis/mockgcp/cloud/gkehub/v1beta1/membership.proto \ + ./third_party/googleapis/mockgcp/cloud/gkemulticloud/v1/*.proto \ ./third_party/googleapis/mockgcp/cloud/kms/v1/*.proto \ ./third_party/googleapis/mockgcp/cloud/networkservices/v1/*.proto \ + ./third_party/googleapis/mockgcp/cloud/privilegedaccessmanager/v1/*.proto \ ./third_party/googleapis/mockgcp/cloud/pubsublite/v1/*.proto \ - ./third_party/googleapis/mockgcp/cloud/redis/v1beta1/*.proto \ ./third_party/googleapis/mockgcp/cloud/redis/cluster/v1/*.proto \ + ./third_party/googleapis/mockgcp/cloud/redis/v1beta1/*.proto \ ./third_party/googleapis/mockgcp/cloud/resourcemanager/v3/*.proto \ - ./third_party/googleapis/mockgcp/cloud/security/privateca/v1/*.proto \ - ./third_party/googleapis/mockgcp/cloud/privilegedaccessmanager/v1/*.proto \ ./third_party/googleapis/mockgcp/cloud/secretmanager/v1/*.proto \ + ./third_party/googleapis/mockgcp/cloud/security/privateca/v1/*.proto \ ./third_party/googleapis/mockgcp/cloud/sql/v1beta4/*.proto \ ./third_party/googleapis/mockgcp/container/v1beta1/*.proto \ - ./third_party/googleapis/mockgcp/monitoring/v3/*.proto \ + ./third_party/googleapis/mockgcp/dataflow/v1beta3/*.proto \ + ./third_party/googleapis/mockgcp/devtools/artifactregistry/v1/*.proto \ + ./third_party/googleapis/mockgcp/devtools/cloudbuild/v1/*.proto \ + ./third_party/googleapis/mockgcp/firestore/admin/v1/*.proto \ + ./third_party/googleapis/mockgcp/iam/admin/v1/*.proto \ + ./third_party/googleapis/mockgcp/logging/v2/*.proto \ ./third_party/googleapis/mockgcp/monitoring/dashboard/v1/*.proto \ - ./third_party/googleapis/mockgcp/api/serviceusage/v1/*.proto \ - ./third_party/googleapis/mockgcp/api/serviceusage/v1beta1/*.proto \ - ./third_party/googleapis/mockgcp/cloud/gkehub/v1beta/*.proto \ - ./third_party/googleapis/mockgcp/cloud/gkehub/v1beta/configmanagement/*.proto \ - ./third_party/googleapis/mockgcp/cloud/gkehub/v1beta/metering/*.proto \ - ./third_party/googleapis/mockgcp/cloud/gkehub/v1beta/multiclusteringress/*.proto \ - ./third_party/googleapis/mockgcp/cloud/gkehub/v1beta1/membership.proto \ + ./third_party/googleapis/mockgcp/monitoring/v3/*.proto \ + ./third_party/googleapis/mockgcp/pubsub/v1/*.proto \ + ./third_party/googleapis/mockgcp/spanner/admin/database/v1/*.proto \ + ./third_party/googleapis/mockgcp/spanner/admin/instance/v1/*.proto \ ./third_party/googleapis/mockgrafeas/v1/*.proto diff --git a/mockgcp/README.md b/mockgcp/README.md index d49e926cad..9a075984bd 100644 --- a/mockgcp/README.md +++ b/mockgcp/README.md @@ -22,11 +22,11 @@ for tests, so we don't even need to start a real webserver (i.e. we don't even n ## Adding a new service -To add a new service, the easiest way is to copy one of the existing CLs. Example CL: [mockGCP for cloudfunctions](https://github.com/GoogleCloudPlatform/k8s-config-connector/pull/869) +To add a new service, the easiest way is to copy one of the existing PRs. Example PR: [mockGCP for cloudfunctions](https://github.com/GoogleCloudPlatform/k8s-config-connector/pull/869) Broadly the steps are: -1. Add the proto to the Makefile and run `make gen-proto` (or just `make`, as it's the default target). +1. Add the proto to the Makefile and run `make gen-proto` (or just `make`). All google services are located in [googleapis Github repo](https://github.com/googleapis/googleapis/tree/master/google), refer to your resource's API documentation to identify the service name, for example [privateca](https://cloud.google.com/certificate-authority-service/docs/reference/rest#service:-privateca.googleapis.com). @@ -38,8 +38,8 @@ Broadly the steps are: * (Optional) If you determine that the proto file is not up to date, or if it doesn't exist at all, refer to the [Generating Proto](#generating-proto) section -1. (Optional). If you're adding an API outside of googleapis/google/cloud, - you may need to add commands to rename the API o mockgcp in [fixup-third-party.sh](fixup-third-party.sh). Example: +1. (Optional). If you're adding an API outside of `googleapis/google/cloud`, + you may need to add commands to rename the API to mockgcp in [fixup-third-party.sh](fixup-third-party.sh). Example: ``` ... mv google/logging/ mockgcp/ @@ -51,8 +51,8 @@ Broadly the steps are: 1. Add a subdirectory called `mock`. - Copying one of the existing ones. `mockprivateca` is a reasonable basic one. Keep the files names.go and service.go, - rename the third one to `.go`. + * Copying one of the existing ones. `mockprivateca` is a reasonable basic one. Note the files `names.go` and `service.go`, + rename the third one to `.go`. We have started collapsing the contents of the `names.go` files into the relevant `.go` files. 1. Adjust your mock to use your protos (change the import paths), rename the types, etc. 1. Implement the core CRUD methods in `.go`. @@ -60,6 +60,8 @@ Broadly the steps are: some more CRUD methods. In the log, you should see some errors indicating which method is not supported. For those methods, go into the service definition and implement a basic implementation - we have examples of most of the CRUD operations at this point. + + Note that until you started using the mock package you defined, VSCode may highlight a warning that the package is not used. See later steps for where to use the new mock package. 1. Register the mock service of your resource in the service.go file. [Example](https://github.com/GoogleCloudPlatform/k8s-config-connector/blob/d10e4ac6241a454c995006ce2c83b5c4d20bb510/mockgcp/mockaiplatform/service.go#L58). 1. Add the service handler of your resource in the service.go file. @@ -69,7 +71,10 @@ Broadly the steps are: [harness.go](https://github.com/GoogleCloudPlatform/k8s-config-connector/blob/master/config/tests/samples/create/harness.go). 1. Run the tests. - Example command: `E2E_KUBE_TARGET=envtest RUN_E2E=1 E2E_GCP_TARGET=mock go test -test.count=1 -timeout 3600s -v ./tests/e2e -run TestAllInSeries/fixtures 2>&1 | tee log`. + Example command: + ``` + E2E_KUBE_TARGET=envtest RUN_E2E=1 E2E_GCP_TARGET=mock go test -test.count=1 -timeout 3600s -v ./tests/e2e -run TestAllInSeries/fixtures 2>&1 | tee log + ``` You can also specify a single test to run to save time, for example, `TestAllInSeries/fixtures/privatecacapool`, or reduce the timeout from 3600s to 600s or any other reasonable value depends on your test. diff --git a/mockgcp/fixup-third-party.sh b/mockgcp/fixup-third-party.sh index dcc21e6a15..8bfda210b3 100755 --- a/mockgcp/fixup-third-party.sh +++ b/mockgcp/fixup-third-party.sh @@ -26,6 +26,7 @@ rm -rf mockgcp/ && mkdir -p mockgcp/api/ && mkdir -p mockgcp/devtools mv google/cloud/ mockgcp/ mv google/container/ mockgcp/ mv google/dataflow/ mockgcp/ +mv google/firestore/ mockgcp/ mv google/iam/ mockgcp/ mv google/logging/ mockgcp/ mv google/pubsub/ mockgcp/ @@ -53,6 +54,9 @@ find . -type f -print0 | xargs -0 sed -i -e "s@google\.container@mockgcp.contain find . -type f -print0 | xargs -0 sed -i -e "s@google/dataflow/@mockgcp/dataflow/@g" find . -type f -print0 | xargs -0 sed -i -e "s@google\.dataflow@mockgcp.dataflow@g" +find . -type f -print0 | xargs -0 sed -i -e "s@google/firestore/@mockgcp/firestore/@g" +find . -type f -print0 | xargs -0 sed -i -e "s@google\.firestore@mockgcp.firestore@g" + find . -type f -print0 | xargs -0 sed -i -e "s@google/iam/@mockgcp/iam/@g" find . -type f -print0 | xargs -0 sed -i -e "s@google\.iam@mockgcp.iam@g" diff --git a/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/configmanagement/configmanagement.pb.go b/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/configmanagement/configmanagement.pb.go index e1c8ea3953..f09564ec6a 100644 --- a/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/configmanagement/configmanagement.pb.go +++ b/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/configmanagement/configmanagement.pb.go @@ -288,7 +288,7 @@ type MembershipSpec struct { PolicyController *PolicyController `protobuf:"bytes,2,opt,name=policy_controller,json=policyController,proto3" json:"policy_controller,omitempty"` // Binauthz conifguration for the cluster. Binauthz *BinauthzConfig `protobuf:"bytes,3,opt,name=binauthz,proto3" json:"binauthz,omitempty"` - // **DEPRECATED** Configuring Hierarchy Controller through the configmanagement feature is no longer recommended. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead. + // Hierarchy Controller is no longer available. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead. HierarchyController *HierarchyControllerConfig `protobuf:"bytes,4,opt,name=hierarchy_controller,json=hierarchyController,proto3" json:"hierarchy_controller,omitempty"` // Version of ACM installed. Version string `protobuf:"bytes,10,opt,name=version,proto3" json:"version,omitempty"` diff --git a/mockgcp/generated/mockgcp/firestore/admin/v1/backup.pb.go b/mockgcp/generated/mockgcp/firestore/admin/v1/backup.pb.go new file mode 100644 index 0000000000..6e1d82be42 --- /dev/null +++ b/mockgcp/generated/mockgcp/firestore/admin/v1/backup.pb.go @@ -0,0 +1,437 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.12.4 +// source: mockgcp/firestore/admin/v1/backup.proto + +package adminpb + +import ( + timestamp "github.com/golang/protobuf/ptypes/timestamp" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Indicate the current state of the backup. +type Backup_State int32 + +const ( + // The state is unspecified. + Backup_STATE_UNSPECIFIED Backup_State = 0 + // The pending backup is still being created. Operations on the + // backup will be rejected in this state. + Backup_CREATING Backup_State = 1 + // The backup is complete and ready to use. + Backup_READY Backup_State = 2 + // The backup is not available at this moment. + Backup_NOT_AVAILABLE Backup_State = 3 +) + +// Enum value maps for Backup_State. +var ( + Backup_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "CREATING", + 2: "READY", + 3: "NOT_AVAILABLE", + } + Backup_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "READY": 2, + "NOT_AVAILABLE": 3, + } +) + +func (x Backup_State) Enum() *Backup_State { + p := new(Backup_State) + *p = x + return p +} + +func (x Backup_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Backup_State) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_firestore_admin_v1_backup_proto_enumTypes[0].Descriptor() +} + +func (Backup_State) Type() protoreflect.EnumType { + return &file_mockgcp_firestore_admin_v1_backup_proto_enumTypes[0] +} + +func (x Backup_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Backup_State.Descriptor instead. +func (Backup_State) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_backup_proto_rawDescGZIP(), []int{0, 0} +} + +// A Backup of a Cloud Firestore Database. +// +// The backup contains all documents and index configurations for the given +// database at a specific point in time. +type Backup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The unique resource name of the Backup. + // + // Format is `projects/{project}/locations/{location}/backups/{backup}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. Name of the Firestore database that the backup is from. + // + // Format is `projects/{project}/databases/{database}`. + Database string `protobuf:"bytes,2,opt,name=database,proto3" json:"database,omitempty"` + // Output only. The system-generated UUID4 for the Firestore database that the + // backup is from. + DatabaseUid string `protobuf:"bytes,7,opt,name=database_uid,json=databaseUid,proto3" json:"database_uid,omitempty"` + // Output only. The backup contains an externally consistent copy of the + // database at this time. + SnapshotTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=snapshot_time,json=snapshotTime,proto3" json:"snapshot_time,omitempty"` + // Output only. The timestamp at which this backup expires. + ExpireTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"` + // Output only. Statistics about the backup. + // + // This data only becomes available after the backup is fully materialized to + // secondary storage. This field will be empty till then. + Stats *Backup_Stats `protobuf:"bytes,6,opt,name=stats,proto3" json:"stats,omitempty"` + // Output only. The current state of the backup. + State Backup_State `protobuf:"varint,8,opt,name=state,proto3,enum=mockgcp.firestore.admin.v1.Backup_State" json:"state,omitempty"` +} + +func (x *Backup) Reset() { + *x = Backup{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_backup_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Backup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Backup) ProtoMessage() {} + +func (x *Backup) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_backup_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Backup.ProtoReflect.Descriptor instead. +func (*Backup) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_backup_proto_rawDescGZIP(), []int{0} +} + +func (x *Backup) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Backup) GetDatabase() string { + if x != nil { + return x.Database + } + return "" +} + +func (x *Backup) GetDatabaseUid() string { + if x != nil { + return x.DatabaseUid + } + return "" +} + +func (x *Backup) GetSnapshotTime() *timestamp.Timestamp { + if x != nil { + return x.SnapshotTime + } + return nil +} + +func (x *Backup) GetExpireTime() *timestamp.Timestamp { + if x != nil { + return x.ExpireTime + } + return nil +} + +func (x *Backup) GetStats() *Backup_Stats { + if x != nil { + return x.Stats + } + return nil +} + +func (x *Backup) GetState() Backup_State { + if x != nil { + return x.State + } + return Backup_STATE_UNSPECIFIED +} + +// Backup specific statistics. +type Backup_Stats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Summation of the size of all documents and index entries in + // the backup, measured in bytes. + SizeBytes int64 `protobuf:"varint,1,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"` + // Output only. The total number of documents contained in the backup. + DocumentCount int64 `protobuf:"varint,2,opt,name=document_count,json=documentCount,proto3" json:"document_count,omitempty"` + // Output only. The total number of index entries contained in the backup. + IndexCount int64 `protobuf:"varint,3,opt,name=index_count,json=indexCount,proto3" json:"index_count,omitempty"` +} + +func (x *Backup_Stats) Reset() { + *x = Backup_Stats{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_backup_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Backup_Stats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Backup_Stats) ProtoMessage() {} + +func (x *Backup_Stats) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_backup_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Backup_Stats.ProtoReflect.Descriptor instead. +func (*Backup_Stats) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_backup_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *Backup_Stats) GetSizeBytes() int64 { + if x != nil { + return x.SizeBytes + } + return 0 +} + +func (x *Backup_Stats) GetDocumentCount() int64 { + if x != nil { + return x.DocumentCount + } + return 0 +} + +func (x *Backup_Stats) GetIndexCount() int64 { + if x != nil { + return x.IndexCount + } + return 0 +} + +var File_mockgcp_firestore_admin_v1_backup_proto protoreflect.FileDescriptor + +var file_mockgcp_firestore_admin_v1_backup_proto_rawDesc = []byte{ + 0x0a, 0x27, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x6d, 0x6f, 0x63, 0x6b, 0x67, + 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0xcd, 0x05, 0x0a, 0x06, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x23, + 0x0a, 0x21, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x26, 0x0a, + 0x0c, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x55, 0x69, 0x64, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x43, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, + 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x73, 0x12, 0x43, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x28, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x7d, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x0e, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x0d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x4a, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, + 0x4e, 0x47, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, + 0x11, 0x0a, 0x0d, 0x4e, 0x4f, 0x54, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, + 0x10, 0x03, 0x3a, 0x5e, 0xea, 0x41, 0x5b, 0x0a, 0x1f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x38, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x7d, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x7d, 0x42, 0xdb, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, + 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x70, 0x62, 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x70, 0x62, 0xa2, + 0x02, 0x04, 0x47, 0x43, 0x46, 0x53, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, + 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x23, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x46, 0x69, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x3a, 0x3a, 0x56, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_mockgcp_firestore_admin_v1_backup_proto_rawDescOnce sync.Once + file_mockgcp_firestore_admin_v1_backup_proto_rawDescData = file_mockgcp_firestore_admin_v1_backup_proto_rawDesc +) + +func file_mockgcp_firestore_admin_v1_backup_proto_rawDescGZIP() []byte { + file_mockgcp_firestore_admin_v1_backup_proto_rawDescOnce.Do(func() { + file_mockgcp_firestore_admin_v1_backup_proto_rawDescData = protoimpl.X.CompressGZIP(file_mockgcp_firestore_admin_v1_backup_proto_rawDescData) + }) + return file_mockgcp_firestore_admin_v1_backup_proto_rawDescData +} + +var file_mockgcp_firestore_admin_v1_backup_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_mockgcp_firestore_admin_v1_backup_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_mockgcp_firestore_admin_v1_backup_proto_goTypes = []interface{}{ + (Backup_State)(0), // 0: mockgcp.firestore.admin.v1.Backup.State + (*Backup)(nil), // 1: mockgcp.firestore.admin.v1.Backup + (*Backup_Stats)(nil), // 2: mockgcp.firestore.admin.v1.Backup.Stats + (*timestamp.Timestamp)(nil), // 3: google.protobuf.Timestamp +} +var file_mockgcp_firestore_admin_v1_backup_proto_depIdxs = []int32{ + 3, // 0: mockgcp.firestore.admin.v1.Backup.snapshot_time:type_name -> google.protobuf.Timestamp + 3, // 1: mockgcp.firestore.admin.v1.Backup.expire_time:type_name -> google.protobuf.Timestamp + 2, // 2: mockgcp.firestore.admin.v1.Backup.stats:type_name -> mockgcp.firestore.admin.v1.Backup.Stats + 0, // 3: mockgcp.firestore.admin.v1.Backup.state:type_name -> mockgcp.firestore.admin.v1.Backup.State + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_mockgcp_firestore_admin_v1_backup_proto_init() } +func file_mockgcp_firestore_admin_v1_backup_proto_init() { + if File_mockgcp_firestore_admin_v1_backup_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_mockgcp_firestore_admin_v1_backup_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Backup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_backup_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Backup_Stats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_mockgcp_firestore_admin_v1_backup_proto_rawDesc, + NumEnums: 1, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_mockgcp_firestore_admin_v1_backup_proto_goTypes, + DependencyIndexes: file_mockgcp_firestore_admin_v1_backup_proto_depIdxs, + EnumInfos: file_mockgcp_firestore_admin_v1_backup_proto_enumTypes, + MessageInfos: file_mockgcp_firestore_admin_v1_backup_proto_msgTypes, + }.Build() + File_mockgcp_firestore_admin_v1_backup_proto = out.File + file_mockgcp_firestore_admin_v1_backup_proto_rawDesc = nil + file_mockgcp_firestore_admin_v1_backup_proto_goTypes = nil + file_mockgcp_firestore_admin_v1_backup_proto_depIdxs = nil +} diff --git a/mockgcp/generated/mockgcp/firestore/admin/v1/database.pb.go b/mockgcp/generated/mockgcp/firestore/admin/v1/database.pb.go new file mode 100644 index 0000000000..21123e915e --- /dev/null +++ b/mockgcp/generated/mockgcp/firestore/admin/v1/database.pb.go @@ -0,0 +1,750 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.12.4 +// source: mockgcp/firestore/admin/v1/database.proto + +package adminpb + +import ( + duration "github.com/golang/protobuf/ptypes/duration" + timestamp "github.com/golang/protobuf/ptypes/timestamp" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The type of the database. +// See https://cloud.google.com/datastore/docs/firestore-or-datastore for +// information about how to choose. +// +// Mode changes are only allowed if the database is empty. +type Database_DatabaseType int32 + +const ( + // The default value. This value is used if the database type is omitted. + Database_DATABASE_TYPE_UNSPECIFIED Database_DatabaseType = 0 + // Firestore Native Mode + Database_FIRESTORE_NATIVE Database_DatabaseType = 1 + // Firestore in Datastore Mode. + Database_DATASTORE_MODE Database_DatabaseType = 2 +) + +// Enum value maps for Database_DatabaseType. +var ( + Database_DatabaseType_name = map[int32]string{ + 0: "DATABASE_TYPE_UNSPECIFIED", + 1: "FIRESTORE_NATIVE", + 2: "DATASTORE_MODE", + } + Database_DatabaseType_value = map[string]int32{ + "DATABASE_TYPE_UNSPECIFIED": 0, + "FIRESTORE_NATIVE": 1, + "DATASTORE_MODE": 2, + } +) + +func (x Database_DatabaseType) Enum() *Database_DatabaseType { + p := new(Database_DatabaseType) + *p = x + return p +} + +func (x Database_DatabaseType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Database_DatabaseType) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_firestore_admin_v1_database_proto_enumTypes[0].Descriptor() +} + +func (Database_DatabaseType) Type() protoreflect.EnumType { + return &file_mockgcp_firestore_admin_v1_database_proto_enumTypes[0] +} + +func (x Database_DatabaseType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Database_DatabaseType.Descriptor instead. +func (Database_DatabaseType) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_database_proto_rawDescGZIP(), []int{0, 0} +} + +// The type of concurrency control mode for transactions. +type Database_ConcurrencyMode int32 + +const ( + // Not used. + Database_CONCURRENCY_MODE_UNSPECIFIED Database_ConcurrencyMode = 0 + // Use optimistic concurrency control by default. This mode is available + // for Cloud Firestore databases. + Database_OPTIMISTIC Database_ConcurrencyMode = 1 + // Use pessimistic concurrency control by default. This mode is available + // for Cloud Firestore databases. + // + // This is the default setting for Cloud Firestore. + Database_PESSIMISTIC Database_ConcurrencyMode = 2 + // Use optimistic concurrency control with entity groups by default. + // + // This is the only available mode for Cloud Datastore. + // + // This mode is also available for Cloud Firestore with Datastore Mode but + // is not recommended. + Database_OPTIMISTIC_WITH_ENTITY_GROUPS Database_ConcurrencyMode = 3 +) + +// Enum value maps for Database_ConcurrencyMode. +var ( + Database_ConcurrencyMode_name = map[int32]string{ + 0: "CONCURRENCY_MODE_UNSPECIFIED", + 1: "OPTIMISTIC", + 2: "PESSIMISTIC", + 3: "OPTIMISTIC_WITH_ENTITY_GROUPS", + } + Database_ConcurrencyMode_value = map[string]int32{ + "CONCURRENCY_MODE_UNSPECIFIED": 0, + "OPTIMISTIC": 1, + "PESSIMISTIC": 2, + "OPTIMISTIC_WITH_ENTITY_GROUPS": 3, + } +) + +func (x Database_ConcurrencyMode) Enum() *Database_ConcurrencyMode { + p := new(Database_ConcurrencyMode) + *p = x + return p +} + +func (x Database_ConcurrencyMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Database_ConcurrencyMode) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_firestore_admin_v1_database_proto_enumTypes[1].Descriptor() +} + +func (Database_ConcurrencyMode) Type() protoreflect.EnumType { + return &file_mockgcp_firestore_admin_v1_database_proto_enumTypes[1] +} + +func (x Database_ConcurrencyMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Database_ConcurrencyMode.Descriptor instead. +func (Database_ConcurrencyMode) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_database_proto_rawDescGZIP(), []int{0, 1} +} + +// Point In Time Recovery feature enablement. +type Database_PointInTimeRecoveryEnablement int32 + +const ( + // Not used. + Database_POINT_IN_TIME_RECOVERY_ENABLEMENT_UNSPECIFIED Database_PointInTimeRecoveryEnablement = 0 + // Reads are supported on selected versions of the data from within the past + // 7 days: + // + // * Reads against any timestamp within the past hour + // * Reads against 1-minute snapshots beyond 1 hour and within 7 days + // + // `version_retention_period` and `earliest_version_time` can be + // used to determine the supported versions. + Database_POINT_IN_TIME_RECOVERY_ENABLED Database_PointInTimeRecoveryEnablement = 1 + // Reads are supported on any version of the data from within the past 1 + // hour. + Database_POINT_IN_TIME_RECOVERY_DISABLED Database_PointInTimeRecoveryEnablement = 2 +) + +// Enum value maps for Database_PointInTimeRecoveryEnablement. +var ( + Database_PointInTimeRecoveryEnablement_name = map[int32]string{ + 0: "POINT_IN_TIME_RECOVERY_ENABLEMENT_UNSPECIFIED", + 1: "POINT_IN_TIME_RECOVERY_ENABLED", + 2: "POINT_IN_TIME_RECOVERY_DISABLED", + } + Database_PointInTimeRecoveryEnablement_value = map[string]int32{ + "POINT_IN_TIME_RECOVERY_ENABLEMENT_UNSPECIFIED": 0, + "POINT_IN_TIME_RECOVERY_ENABLED": 1, + "POINT_IN_TIME_RECOVERY_DISABLED": 2, + } +) + +func (x Database_PointInTimeRecoveryEnablement) Enum() *Database_PointInTimeRecoveryEnablement { + p := new(Database_PointInTimeRecoveryEnablement) + *p = x + return p +} + +func (x Database_PointInTimeRecoveryEnablement) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Database_PointInTimeRecoveryEnablement) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_firestore_admin_v1_database_proto_enumTypes[2].Descriptor() +} + +func (Database_PointInTimeRecoveryEnablement) Type() protoreflect.EnumType { + return &file_mockgcp_firestore_admin_v1_database_proto_enumTypes[2] +} + +func (x Database_PointInTimeRecoveryEnablement) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Database_PointInTimeRecoveryEnablement.Descriptor instead. +func (Database_PointInTimeRecoveryEnablement) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_database_proto_rawDescGZIP(), []int{0, 2} +} + +// The type of App Engine integration mode. +type Database_AppEngineIntegrationMode int32 + +const ( + // Not used. + Database_APP_ENGINE_INTEGRATION_MODE_UNSPECIFIED Database_AppEngineIntegrationMode = 0 + // If an App Engine application exists in the same region as this database, + // App Engine configuration will impact this database. This includes + // disabling of the application & database, as well as disabling writes to + // the database. + Database_ENABLED Database_AppEngineIntegrationMode = 1 + // App Engine has no effect on the ability of this database to serve + // requests. + // + // This is the default setting for databases created with the Firestore API. + Database_DISABLED Database_AppEngineIntegrationMode = 2 +) + +// Enum value maps for Database_AppEngineIntegrationMode. +var ( + Database_AppEngineIntegrationMode_name = map[int32]string{ + 0: "APP_ENGINE_INTEGRATION_MODE_UNSPECIFIED", + 1: "ENABLED", + 2: "DISABLED", + } + Database_AppEngineIntegrationMode_value = map[string]int32{ + "APP_ENGINE_INTEGRATION_MODE_UNSPECIFIED": 0, + "ENABLED": 1, + "DISABLED": 2, + } +) + +func (x Database_AppEngineIntegrationMode) Enum() *Database_AppEngineIntegrationMode { + p := new(Database_AppEngineIntegrationMode) + *p = x + return p +} + +func (x Database_AppEngineIntegrationMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Database_AppEngineIntegrationMode) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_firestore_admin_v1_database_proto_enumTypes[3].Descriptor() +} + +func (Database_AppEngineIntegrationMode) Type() protoreflect.EnumType { + return &file_mockgcp_firestore_admin_v1_database_proto_enumTypes[3] +} + +func (x Database_AppEngineIntegrationMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Database_AppEngineIntegrationMode.Descriptor instead. +func (Database_AppEngineIntegrationMode) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_database_proto_rawDescGZIP(), []int{0, 3} +} + +// The delete protection state of the database. +type Database_DeleteProtectionState int32 + +const ( + // The default value. Delete protection type is not specified + Database_DELETE_PROTECTION_STATE_UNSPECIFIED Database_DeleteProtectionState = 0 + // Delete protection is disabled + Database_DELETE_PROTECTION_DISABLED Database_DeleteProtectionState = 1 + // Delete protection is enabled + Database_DELETE_PROTECTION_ENABLED Database_DeleteProtectionState = 2 +) + +// Enum value maps for Database_DeleteProtectionState. +var ( + Database_DeleteProtectionState_name = map[int32]string{ + 0: "DELETE_PROTECTION_STATE_UNSPECIFIED", + 1: "DELETE_PROTECTION_DISABLED", + 2: "DELETE_PROTECTION_ENABLED", + } + Database_DeleteProtectionState_value = map[string]int32{ + "DELETE_PROTECTION_STATE_UNSPECIFIED": 0, + "DELETE_PROTECTION_DISABLED": 1, + "DELETE_PROTECTION_ENABLED": 2, + } +) + +func (x Database_DeleteProtectionState) Enum() *Database_DeleteProtectionState { + p := new(Database_DeleteProtectionState) + *p = x + return p +} + +func (x Database_DeleteProtectionState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Database_DeleteProtectionState) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_firestore_admin_v1_database_proto_enumTypes[4].Descriptor() +} + +func (Database_DeleteProtectionState) Type() protoreflect.EnumType { + return &file_mockgcp_firestore_admin_v1_database_proto_enumTypes[4] +} + +func (x Database_DeleteProtectionState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Database_DeleteProtectionState.Descriptor instead. +func (Database_DeleteProtectionState) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_database_proto_rawDescGZIP(), []int{0, 4} +} + +// A Cloud Firestore Database. +type Database struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name of the Database. + // Format: `projects/{project}/databases/{database}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The system-generated UUID4 for this Database. + Uid string `protobuf:"bytes,3,opt,name=uid,proto3" json:"uid,omitempty"` + // Output only. The timestamp at which this database was created. Databases + // created before 2016 do not populate create_time. + CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The timestamp at which this database was most recently + // updated. Note this only includes updates to the database resource and not + // data contained by the database. + UpdateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // The location of the database. Available locations are listed at + // https://cloud.google.com/firestore/docs/locations. + LocationId string `protobuf:"bytes,9,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` + // The type of the database. + // See https://cloud.google.com/datastore/docs/firestore-or-datastore for + // information about how to choose. + Type Database_DatabaseType `protobuf:"varint,10,opt,name=type,proto3,enum=mockgcp.firestore.admin.v1.Database_DatabaseType" json:"type,omitempty"` + // The concurrency control mode to use for this database. + ConcurrencyMode Database_ConcurrencyMode `protobuf:"varint,15,opt,name=concurrency_mode,json=concurrencyMode,proto3,enum=mockgcp.firestore.admin.v1.Database_ConcurrencyMode" json:"concurrency_mode,omitempty"` + // Output only. The period during which past versions of data are retained in + // the database. + // + // Any [read][mockgcp.firestore.v1.GetDocumentRequest.read_time] + // or [query][mockgcp.firestore.v1.ListDocumentsRequest.read_time] can specify + // a `read_time` within this window, and will read the state of the database + // at that time. + // + // If the PITR feature is enabled, the retention period is 7 days. Otherwise, + // the retention period is 1 hour. + VersionRetentionPeriod *duration.Duration `protobuf:"bytes,17,opt,name=version_retention_period,json=versionRetentionPeriod,proto3" json:"version_retention_period,omitempty"` + // Output only. The earliest timestamp at which older versions of the data can + // be read from the database. See [version_retention_period] above; this field + // is populated with `now - version_retention_period`. + // + // This value is continuously updated, and becomes stale the moment it is + // queried. If you are using this value to recover data, make sure to account + // for the time from the moment when the value is queried to the moment when + // you initiate the recovery. + EarliestVersionTime *timestamp.Timestamp `protobuf:"bytes,18,opt,name=earliest_version_time,json=earliestVersionTime,proto3" json:"earliest_version_time,omitempty"` + // Whether to enable the PITR feature on this database. + PointInTimeRecoveryEnablement Database_PointInTimeRecoveryEnablement `protobuf:"varint,21,opt,name=point_in_time_recovery_enablement,json=pointInTimeRecoveryEnablement,proto3,enum=mockgcp.firestore.admin.v1.Database_PointInTimeRecoveryEnablement" json:"point_in_time_recovery_enablement,omitempty"` + // The App Engine integration mode to use for this database. + AppEngineIntegrationMode Database_AppEngineIntegrationMode `protobuf:"varint,19,opt,name=app_engine_integration_mode,json=appEngineIntegrationMode,proto3,enum=mockgcp.firestore.admin.v1.Database_AppEngineIntegrationMode" json:"app_engine_integration_mode,omitempty"` + // Output only. The key_prefix for this database. This key_prefix is used, in + // combination with the project id ("~") to construct + // the application id that is returned from the Cloud Datastore APIs in Google + // App Engine first generation runtimes. + // + // This value may be empty in which case the appid to use for URL-encoded keys + // is the project_id (eg: foo instead of v~foo). + KeyPrefix string `protobuf:"bytes,20,opt,name=key_prefix,json=keyPrefix,proto3" json:"key_prefix,omitempty"` + // State of delete protection for the database. + DeleteProtectionState Database_DeleteProtectionState `protobuf:"varint,22,opt,name=delete_protection_state,json=deleteProtectionState,proto3,enum=mockgcp.firestore.admin.v1.Database_DeleteProtectionState" json:"delete_protection_state,omitempty"` + // This checksum is computed by the server based on the value of other + // fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + Etag string `protobuf:"bytes,99,opt,name=etag,proto3" json:"etag,omitempty"` +} + +func (x *Database) Reset() { + *x = Database{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_database_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Database) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Database) ProtoMessage() {} + +func (x *Database) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_database_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Database.ProtoReflect.Descriptor instead. +func (*Database) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_database_proto_rawDescGZIP(), []int{0} +} + +func (x *Database) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Database) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *Database) GetCreateTime() *timestamp.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Database) GetUpdateTime() *timestamp.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Database) GetLocationId() string { + if x != nil { + return x.LocationId + } + return "" +} + +func (x *Database) GetType() Database_DatabaseType { + if x != nil { + return x.Type + } + return Database_DATABASE_TYPE_UNSPECIFIED +} + +func (x *Database) GetConcurrencyMode() Database_ConcurrencyMode { + if x != nil { + return x.ConcurrencyMode + } + return Database_CONCURRENCY_MODE_UNSPECIFIED +} + +func (x *Database) GetVersionRetentionPeriod() *duration.Duration { + if x != nil { + return x.VersionRetentionPeriod + } + return nil +} + +func (x *Database) GetEarliestVersionTime() *timestamp.Timestamp { + if x != nil { + return x.EarliestVersionTime + } + return nil +} + +func (x *Database) GetPointInTimeRecoveryEnablement() Database_PointInTimeRecoveryEnablement { + if x != nil { + return x.PointInTimeRecoveryEnablement + } + return Database_POINT_IN_TIME_RECOVERY_ENABLEMENT_UNSPECIFIED +} + +func (x *Database) GetAppEngineIntegrationMode() Database_AppEngineIntegrationMode { + if x != nil { + return x.AppEngineIntegrationMode + } + return Database_APP_ENGINE_INTEGRATION_MODE_UNSPECIFIED +} + +func (x *Database) GetKeyPrefix() string { + if x != nil { + return x.KeyPrefix + } + return "" +} + +func (x *Database) GetDeleteProtectionState() Database_DeleteProtectionState { + if x != nil { + return x.DeleteProtectionState + } + return Database_DELETE_PROTECTION_STATE_UNSPECIFIED +} + +func (x *Database) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +var File_mockgcp_firestore_admin_v1_database_proto protoreflect.FileDescriptor + +var file_mockgcp_firestore_admin_v1_database_proto_rawDesc = []byte{ + 0x0a, 0x29, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, + 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x93, 0x0d, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x0b, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, + 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x45, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x31, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x5f, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x58, 0x0a, 0x18, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x16, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x12, 0x53, 0x0a, 0x15, 0x65, 0x61, 0x72, 0x6c, 0x69, 0x65, 0x73, 0x74, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x13, 0x65, 0x61, 0x72, 0x6c, 0x69, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x21, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, + 0x65, 0x72, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, + 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x1d, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x7c, 0x0a, 0x1b, 0x61, 0x70, 0x70, 0x5f, 0x65, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x6d, + 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x74, 0x65, + 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x18, 0x61, 0x70, 0x70, + 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x6b, 0x65, 0x79, 0x5f, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, + 0x6b, 0x65, 0x79, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x72, 0x0a, 0x17, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x15, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x63, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, + 0x67, 0x22, 0x57, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x41, 0x54, 0x41, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x14, 0x0a, 0x10, 0x46, 0x49, 0x52, 0x45, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x4e, 0x41, + 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x41, 0x54, 0x41, 0x53, 0x54, + 0x4f, 0x52, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x02, 0x22, 0x77, 0x0a, 0x0f, 0x43, 0x6f, + 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, + 0x1c, 0x43, 0x4f, 0x4e, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x4d, 0x4f, 0x44, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x54, 0x49, 0x4d, 0x49, 0x53, 0x54, 0x49, 0x43, 0x10, 0x01, 0x12, + 0x0f, 0x0a, 0x0b, 0x50, 0x45, 0x53, 0x53, 0x49, 0x4d, 0x49, 0x53, 0x54, 0x49, 0x43, 0x10, 0x02, + 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x50, 0x54, 0x49, 0x4d, 0x49, 0x53, 0x54, 0x49, 0x43, 0x5f, 0x57, + 0x49, 0x54, 0x48, 0x5f, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x53, 0x10, 0x03, 0x22, 0x9b, 0x01, 0x0a, 0x1d, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x2d, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x49, + 0x4e, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x59, 0x5f, + 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x4f, 0x49, 0x4e, + 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x56, 0x45, + 0x52, 0x59, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, + 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x52, 0x45, + 0x43, 0x4f, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, + 0x02, 0x22, 0x62, 0x0a, 0x18, 0x41, 0x70, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x49, 0x6e, + 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x0a, + 0x27, 0x41, 0x50, 0x50, 0x5f, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x45, + 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, + 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, + 0x4c, 0x45, 0x44, 0x10, 0x02, 0x22, 0x7f, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, + 0x0a, 0x23, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x45, 0x4c, 0x45, 0x54, + 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, + 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x45, 0x4c, 0x45, 0x54, + 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x41, + 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x3a, 0x52, 0xea, 0x41, 0x4f, 0x0a, 0x21, 0x66, 0x69, 0x72, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x27, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x7d, 0x52, 0x01, 0x01, 0x42, 0xdd, 0x01, 0x0a, 0x1e, 0x63, + 0x6f, 0x6d, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x44, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x6f, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x70, + 0x69, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x70, + 0x62, 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x70, 0x62, 0xa2, 0x02, 0x04, 0x47, 0x43, 0x46, 0x53, + 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x56, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x5c, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5c, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x23, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3a, + 0x3a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_mockgcp_firestore_admin_v1_database_proto_rawDescOnce sync.Once + file_mockgcp_firestore_admin_v1_database_proto_rawDescData = file_mockgcp_firestore_admin_v1_database_proto_rawDesc +) + +func file_mockgcp_firestore_admin_v1_database_proto_rawDescGZIP() []byte { + file_mockgcp_firestore_admin_v1_database_proto_rawDescOnce.Do(func() { + file_mockgcp_firestore_admin_v1_database_proto_rawDescData = protoimpl.X.CompressGZIP(file_mockgcp_firestore_admin_v1_database_proto_rawDescData) + }) + return file_mockgcp_firestore_admin_v1_database_proto_rawDescData +} + +var file_mockgcp_firestore_admin_v1_database_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_mockgcp_firestore_admin_v1_database_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_mockgcp_firestore_admin_v1_database_proto_goTypes = []interface{}{ + (Database_DatabaseType)(0), // 0: mockgcp.firestore.admin.v1.Database.DatabaseType + (Database_ConcurrencyMode)(0), // 1: mockgcp.firestore.admin.v1.Database.ConcurrencyMode + (Database_PointInTimeRecoveryEnablement)(0), // 2: mockgcp.firestore.admin.v1.Database.PointInTimeRecoveryEnablement + (Database_AppEngineIntegrationMode)(0), // 3: mockgcp.firestore.admin.v1.Database.AppEngineIntegrationMode + (Database_DeleteProtectionState)(0), // 4: mockgcp.firestore.admin.v1.Database.DeleteProtectionState + (*Database)(nil), // 5: mockgcp.firestore.admin.v1.Database + (*timestamp.Timestamp)(nil), // 6: google.protobuf.Timestamp + (*duration.Duration)(nil), // 7: google.protobuf.Duration +} +var file_mockgcp_firestore_admin_v1_database_proto_depIdxs = []int32{ + 6, // 0: mockgcp.firestore.admin.v1.Database.create_time:type_name -> google.protobuf.Timestamp + 6, // 1: mockgcp.firestore.admin.v1.Database.update_time:type_name -> google.protobuf.Timestamp + 0, // 2: mockgcp.firestore.admin.v1.Database.type:type_name -> mockgcp.firestore.admin.v1.Database.DatabaseType + 1, // 3: mockgcp.firestore.admin.v1.Database.concurrency_mode:type_name -> mockgcp.firestore.admin.v1.Database.ConcurrencyMode + 7, // 4: mockgcp.firestore.admin.v1.Database.version_retention_period:type_name -> google.protobuf.Duration + 6, // 5: mockgcp.firestore.admin.v1.Database.earliest_version_time:type_name -> google.protobuf.Timestamp + 2, // 6: mockgcp.firestore.admin.v1.Database.point_in_time_recovery_enablement:type_name -> mockgcp.firestore.admin.v1.Database.PointInTimeRecoveryEnablement + 3, // 7: mockgcp.firestore.admin.v1.Database.app_engine_integration_mode:type_name -> mockgcp.firestore.admin.v1.Database.AppEngineIntegrationMode + 4, // 8: mockgcp.firestore.admin.v1.Database.delete_protection_state:type_name -> mockgcp.firestore.admin.v1.Database.DeleteProtectionState + 9, // [9:9] is the sub-list for method output_type + 9, // [9:9] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name +} + +func init() { file_mockgcp_firestore_admin_v1_database_proto_init() } +func file_mockgcp_firestore_admin_v1_database_proto_init() { + if File_mockgcp_firestore_admin_v1_database_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_mockgcp_firestore_admin_v1_database_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Database); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_mockgcp_firestore_admin_v1_database_proto_rawDesc, + NumEnums: 5, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_mockgcp_firestore_admin_v1_database_proto_goTypes, + DependencyIndexes: file_mockgcp_firestore_admin_v1_database_proto_depIdxs, + EnumInfos: file_mockgcp_firestore_admin_v1_database_proto_enumTypes, + MessageInfos: file_mockgcp_firestore_admin_v1_database_proto_msgTypes, + }.Build() + File_mockgcp_firestore_admin_v1_database_proto = out.File + file_mockgcp_firestore_admin_v1_database_proto_rawDesc = nil + file_mockgcp_firestore_admin_v1_database_proto_goTypes = nil + file_mockgcp_firestore_admin_v1_database_proto_depIdxs = nil +} diff --git a/mockgcp/generated/mockgcp/firestore/admin/v1/field.pb.go b/mockgcp/generated/mockgcp/firestore/admin/v1/field.pb.go new file mode 100644 index 0000000000..be6ec73bc8 --- /dev/null +++ b/mockgcp/generated/mockgcp/firestore/admin/v1/field.pb.go @@ -0,0 +1,510 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.12.4 +// source: mockgcp/firestore/admin/v1/field.proto + +package adminpb + +import ( + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The state of applying the TTL configuration to all documents. +type Field_TtlConfig_State int32 + +const ( + // The state is unspecified or unknown. + Field_TtlConfig_STATE_UNSPECIFIED Field_TtlConfig_State = 0 + // The TTL is being applied. There is an active long-running operation to + // track the change. Newly written documents will have TTLs applied as + // requested. Requested TTLs on existing documents are still being + // processed. When TTLs on all existing documents have been processed, the + // state will move to 'ACTIVE'. + Field_TtlConfig_CREATING Field_TtlConfig_State = 1 + // The TTL is active for all documents. + Field_TtlConfig_ACTIVE Field_TtlConfig_State = 2 + // The TTL configuration could not be enabled for all existing documents. + // Newly written documents will continue to have their TTL applied. + // The LRO returned when last attempting to enable TTL for this `Field` + // has failed, and may have more details. + Field_TtlConfig_NEEDS_REPAIR Field_TtlConfig_State = 3 +) + +// Enum value maps for Field_TtlConfig_State. +var ( + Field_TtlConfig_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "CREATING", + 2: "ACTIVE", + 3: "NEEDS_REPAIR", + } + Field_TtlConfig_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "ACTIVE": 2, + "NEEDS_REPAIR": 3, + } +) + +func (x Field_TtlConfig_State) Enum() *Field_TtlConfig_State { + p := new(Field_TtlConfig_State) + *p = x + return p +} + +func (x Field_TtlConfig_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Field_TtlConfig_State) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_firestore_admin_v1_field_proto_enumTypes[0].Descriptor() +} + +func (Field_TtlConfig_State) Type() protoreflect.EnumType { + return &file_mockgcp_firestore_admin_v1_field_proto_enumTypes[0] +} + +func (x Field_TtlConfig_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Field_TtlConfig_State.Descriptor instead. +func (Field_TtlConfig_State) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_field_proto_rawDescGZIP(), []int{0, 1, 0} +} + +// Represents a single field in the database. +// +// Fields are grouped by their "Collection Group", which represent all +// collections in the database with the same ID. +type Field struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. A field name of the form: + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_path}` + // + // A field path can be a simple field name, e.g. `address` or a path to fields + // within `map_value` , e.g. `address.city`, + // or a special field path. The only valid special field is `*`, which + // represents any field. + // + // Field paths can be quoted using “ ` “ (backtick). The only character that + // must be escaped within a quoted field path is the backtick character + // itself, escaped using a backslash. Special characters in field paths that + // must be quoted include: `*`, `.`, + // “ ` “ (backtick), `[`, `]`, as well as any ascii symbolic characters. + // + // Examples: + // “ `address.city` “ represents a field named `address.city`, not the map + // key `city` in the field `address`. “ `*` “ represents a field named `*`, + // not any field. + // + // A special `Field` contains the default indexing settings for all fields. + // This field's resource name is: + // `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*` + // Indexes defined on this `Field` will be applied to all fields which do not + // have their own `Field` index configuration. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The index configuration for this field. If unset, field indexing will + // revert to the configuration defined by the `ancestor_field`. To + // explicitly remove all indexes for this field, specify an index config + // with an empty list of indexes. + IndexConfig *Field_IndexConfig `protobuf:"bytes,2,opt,name=index_config,json=indexConfig,proto3" json:"index_config,omitempty"` + // The TTL configuration for this `Field`. + // Setting or unsetting this will enable or disable the TTL for + // documents that have this `Field`. + TtlConfig *Field_TtlConfig `protobuf:"bytes,3,opt,name=ttl_config,json=ttlConfig,proto3" json:"ttl_config,omitempty"` +} + +func (x *Field) Reset() { + *x = Field{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_field_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Field) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Field) ProtoMessage() {} + +func (x *Field) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_field_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Field.ProtoReflect.Descriptor instead. +func (*Field) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_field_proto_rawDescGZIP(), []int{0} +} + +func (x *Field) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Field) GetIndexConfig() *Field_IndexConfig { + if x != nil { + return x.IndexConfig + } + return nil +} + +func (x *Field) GetTtlConfig() *Field_TtlConfig { + if x != nil { + return x.TtlConfig + } + return nil +} + +// The index configuration for this field. +type Field_IndexConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The indexes supported for this field. + Indexes []*Index `protobuf:"bytes,1,rep,name=indexes,proto3" json:"indexes,omitempty"` + // Output only. When true, the `Field`'s index configuration is set from the + // configuration specified by the `ancestor_field`. + // When false, the `Field`'s index configuration is defined explicitly. + UsesAncestorConfig bool `protobuf:"varint,2,opt,name=uses_ancestor_config,json=usesAncestorConfig,proto3" json:"uses_ancestor_config,omitempty"` + // Output only. Specifies the resource name of the `Field` from which this + // field's index configuration is set (when `uses_ancestor_config` is true), + // or from which it *would* be set if this field had no index configuration + // (when `uses_ancestor_config` is false). + AncestorField string `protobuf:"bytes,3,opt,name=ancestor_field,json=ancestorField,proto3" json:"ancestor_field,omitempty"` + // Output only + // When true, the `Field`'s index configuration is in the process of being + // reverted. Once complete, the index config will transition to the same + // state as the field specified by `ancestor_field`, at which point + // `uses_ancestor_config` will be `true` and `reverting` will be `false`. + Reverting bool `protobuf:"varint,4,opt,name=reverting,proto3" json:"reverting,omitempty"` +} + +func (x *Field_IndexConfig) Reset() { + *x = Field_IndexConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_field_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Field_IndexConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Field_IndexConfig) ProtoMessage() {} + +func (x *Field_IndexConfig) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_field_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Field_IndexConfig.ProtoReflect.Descriptor instead. +func (*Field_IndexConfig) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_field_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *Field_IndexConfig) GetIndexes() []*Index { + if x != nil { + return x.Indexes + } + return nil +} + +func (x *Field_IndexConfig) GetUsesAncestorConfig() bool { + if x != nil { + return x.UsesAncestorConfig + } + return false +} + +func (x *Field_IndexConfig) GetAncestorField() string { + if x != nil { + return x.AncestorField + } + return "" +} + +func (x *Field_IndexConfig) GetReverting() bool { + if x != nil { + return x.Reverting + } + return false +} + +// The TTL (time-to-live) configuration for documents that have this `Field` +// set. +// +// Storing a timestamp value into a TTL-enabled field will be treated as +// the document's absolute expiration time. Timestamp values in the past +// indicate that the document is eligible for immediate expiration. Using any +// other data type or leaving the field absent will disable expiration for the +// individual document. +type Field_TtlConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The state of the TTL configuration. + State Field_TtlConfig_State `protobuf:"varint,1,opt,name=state,proto3,enum=mockgcp.firestore.admin.v1.Field_TtlConfig_State" json:"state,omitempty"` +} + +func (x *Field_TtlConfig) Reset() { + *x = Field_TtlConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_field_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Field_TtlConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Field_TtlConfig) ProtoMessage() {} + +func (x *Field_TtlConfig) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_field_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Field_TtlConfig.ProtoReflect.Descriptor instead. +func (*Field_TtlConfig) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_field_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *Field_TtlConfig) GetState() Field_TtlConfig_State { + if x != nil { + return x.State + } + return Field_TtlConfig_STATE_UNSPECIFIED +} + +var File_mockgcp_firestore_admin_v1_field_proto protoreflect.FileDescriptor + +var file_mockgcp_firestore_admin_v1_field_proto_rawDesc = []byte{ + 0x0a, 0x26, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x26, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa5, 0x05, 0x0a, 0x05, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0c, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x0b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4a, 0x0a, + 0x0a, 0x74, 0x74, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x54, 0x74, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, + 0x74, 0x74, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0xc1, 0x01, 0x0a, 0x0b, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x0a, 0x07, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x07, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x73, 0x5f, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x73, 0x65, 0x73, 0x41, 0x6e, 0x63, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6e, 0x63, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x76, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x1a, 0xa5, 0x01, + 0x0a, 0x09, 0x54, 0x74, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4c, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x54, 0x74, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x4a, 0x0a, 0x05, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, + 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, + 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x45, 0x45, 0x44, 0x53, 0x5f, 0x52, 0x45, 0x50, + 0x41, 0x49, 0x52, 0x10, 0x03, 0x3a, 0x79, 0xea, 0x41, 0x76, 0x0a, 0x1e, 0x66, 0x69, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x54, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x7d, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x2f, 0x7b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x7d, + 0x42, 0xda, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, + 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x39, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x70, 0x62, 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x70, 0x62, 0xa2, 0x02, 0x04, 0x47, + 0x43, 0x46, 0x53, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5c, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x23, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_mockgcp_firestore_admin_v1_field_proto_rawDescOnce sync.Once + file_mockgcp_firestore_admin_v1_field_proto_rawDescData = file_mockgcp_firestore_admin_v1_field_proto_rawDesc +) + +func file_mockgcp_firestore_admin_v1_field_proto_rawDescGZIP() []byte { + file_mockgcp_firestore_admin_v1_field_proto_rawDescOnce.Do(func() { + file_mockgcp_firestore_admin_v1_field_proto_rawDescData = protoimpl.X.CompressGZIP(file_mockgcp_firestore_admin_v1_field_proto_rawDescData) + }) + return file_mockgcp_firestore_admin_v1_field_proto_rawDescData +} + +var file_mockgcp_firestore_admin_v1_field_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_mockgcp_firestore_admin_v1_field_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_mockgcp_firestore_admin_v1_field_proto_goTypes = []interface{}{ + (Field_TtlConfig_State)(0), // 0: mockgcp.firestore.admin.v1.Field.TtlConfig.State + (*Field)(nil), // 1: mockgcp.firestore.admin.v1.Field + (*Field_IndexConfig)(nil), // 2: mockgcp.firestore.admin.v1.Field.IndexConfig + (*Field_TtlConfig)(nil), // 3: mockgcp.firestore.admin.v1.Field.TtlConfig + (*Index)(nil), // 4: mockgcp.firestore.admin.v1.Index +} +var file_mockgcp_firestore_admin_v1_field_proto_depIdxs = []int32{ + 2, // 0: mockgcp.firestore.admin.v1.Field.index_config:type_name -> mockgcp.firestore.admin.v1.Field.IndexConfig + 3, // 1: mockgcp.firestore.admin.v1.Field.ttl_config:type_name -> mockgcp.firestore.admin.v1.Field.TtlConfig + 4, // 2: mockgcp.firestore.admin.v1.Field.IndexConfig.indexes:type_name -> mockgcp.firestore.admin.v1.Index + 0, // 3: mockgcp.firestore.admin.v1.Field.TtlConfig.state:type_name -> mockgcp.firestore.admin.v1.Field.TtlConfig.State + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_mockgcp_firestore_admin_v1_field_proto_init() } +func file_mockgcp_firestore_admin_v1_field_proto_init() { + if File_mockgcp_firestore_admin_v1_field_proto != nil { + return + } + file_mockgcp_firestore_admin_v1_index_proto_init() + if !protoimpl.UnsafeEnabled { + file_mockgcp_firestore_admin_v1_field_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Field); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_field_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Field_IndexConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_field_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Field_TtlConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_mockgcp_firestore_admin_v1_field_proto_rawDesc, + NumEnums: 1, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_mockgcp_firestore_admin_v1_field_proto_goTypes, + DependencyIndexes: file_mockgcp_firestore_admin_v1_field_proto_depIdxs, + EnumInfos: file_mockgcp_firestore_admin_v1_field_proto_enumTypes, + MessageInfos: file_mockgcp_firestore_admin_v1_field_proto_msgTypes, + }.Build() + File_mockgcp_firestore_admin_v1_field_proto = out.File + file_mockgcp_firestore_admin_v1_field_proto_rawDesc = nil + file_mockgcp_firestore_admin_v1_field_proto_goTypes = nil + file_mockgcp_firestore_admin_v1_field_proto_depIdxs = nil +} diff --git a/mockgcp/generated/mockgcp/firestore/admin/v1/firestore_admin.pb.go b/mockgcp/generated/mockgcp/firestore/admin/v1/firestore_admin.pb.go new file mode 100644 index 0000000000..a449d04e5e --- /dev/null +++ b/mockgcp/generated/mockgcp/firestore/admin/v1/firestore_admin.pb.go @@ -0,0 +1,3226 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.12.4 +// source: mockgcp/firestore/admin/v1/firestore_admin.proto + +package adminpb + +import ( + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + empty "github.com/golang/protobuf/ptypes/empty" + timestamp "github.com/golang/protobuf/ptypes/timestamp" + _ "google.golang.org/genproto/googleapis/api/annotations" + field_mask "google.golang.org/genproto/protobuf/field_mask" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// A request to list the Firestore Databases in all locations for a project. +type ListDatabasesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. A parent name of the form + // `projects/{project_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // If true, also returns deleted resources. + ShowDeleted bool `protobuf:"varint,4,opt,name=show_deleted,json=showDeleted,proto3" json:"show_deleted,omitempty"` +} + +func (x *ListDatabasesRequest) Reset() { + *x = ListDatabasesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDatabasesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDatabasesRequest) ProtoMessage() {} + +func (x *ListDatabasesRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListDatabasesRequest.ProtoReflect.Descriptor instead. +func (*ListDatabasesRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{0} +} + +func (x *ListDatabasesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListDatabasesRequest) GetShowDeleted() bool { + if x != nil { + return x.ShowDeleted + } + return false +} + +// The request for +// [FirestoreAdmin.CreateDatabase][mockgcp.firestore.admin.v1.FirestoreAdmin.CreateDatabase]. +type CreateDatabaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. A parent name of the form + // `projects/{project_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The Database to create. + Database *Database `protobuf:"bytes,2,opt,name=database,proto3" json:"database,omitempty"` + // Required. The ID to use for the database, which will become the final + // component of the database's resource name. + // + // This value should be 4-63 characters. Valid characters are /[a-z][0-9]-/ + // with first character a letter and the last a letter or a number. Must not + // be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + // + // "(default)" database id is also valid. + DatabaseId string `protobuf:"bytes,3,opt,name=database_id,json=databaseId,proto3" json:"database_id,omitempty"` +} + +func (x *CreateDatabaseRequest) Reset() { + *x = CreateDatabaseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateDatabaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateDatabaseRequest) ProtoMessage() {} + +func (x *CreateDatabaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateDatabaseRequest.ProtoReflect.Descriptor instead. +func (*CreateDatabaseRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{1} +} + +func (x *CreateDatabaseRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateDatabaseRequest) GetDatabase() *Database { + if x != nil { + return x.Database + } + return nil +} + +func (x *CreateDatabaseRequest) GetDatabaseId() string { + if x != nil { + return x.DatabaseId + } + return "" +} + +// Metadata related to the create database operation. +type CreateDatabaseMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CreateDatabaseMetadata) Reset() { + *x = CreateDatabaseMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateDatabaseMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateDatabaseMetadata) ProtoMessage() {} + +func (x *CreateDatabaseMetadata) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateDatabaseMetadata.ProtoReflect.Descriptor instead. +func (*CreateDatabaseMetadata) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{2} +} + +// The list of databases for a project. +type ListDatabasesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The databases in the project. + Databases []*Database `protobuf:"bytes,1,rep,name=databases,proto3" json:"databases,omitempty"` + // In the event that data about individual databases cannot be listed they + // will be recorded here. + // + // An example entry might be: projects/some_project/locations/some_location + // This can happen if the Cloud Region that the Database resides in is + // currently unavailable. In this case we can't fetch all the details about + // the database. You may be able to get a more detailed error message + // (or possibly fetch the resource) by sending a 'Get' request for the + // resource or a 'List' request for the specific location. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListDatabasesResponse) Reset() { + *x = ListDatabasesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDatabasesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDatabasesResponse) ProtoMessage() {} + +func (x *ListDatabasesResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListDatabasesResponse.ProtoReflect.Descriptor instead. +func (*ListDatabasesResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{3} +} + +func (x *ListDatabasesResponse) GetDatabases() []*Database { + if x != nil { + return x.Databases + } + return nil +} + +func (x *ListDatabasesResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// The request for +// [FirestoreAdmin.GetDatabase][mockgcp.firestore.admin.v1.FirestoreAdmin.GetDatabase]. +type GetDatabaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. A name of the form + // `projects/{project_id}/databases/{database_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetDatabaseRequest) Reset() { + *x = GetDatabaseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDatabaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDatabaseRequest) ProtoMessage() {} + +func (x *GetDatabaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDatabaseRequest.ProtoReflect.Descriptor instead. +func (*GetDatabaseRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{4} +} + +func (x *GetDatabaseRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request for +// [FirestoreAdmin.UpdateDatabase][mockgcp.firestore.admin.v1.FirestoreAdmin.UpdateDatabase]. +type UpdateDatabaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The database to update. + Database *Database `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` + // The list of fields to be updated. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateDatabaseRequest) Reset() { + *x = UpdateDatabaseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateDatabaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateDatabaseRequest) ProtoMessage() {} + +func (x *UpdateDatabaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateDatabaseRequest.ProtoReflect.Descriptor instead. +func (*UpdateDatabaseRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{5} +} + +func (x *UpdateDatabaseRequest) GetDatabase() *Database { + if x != nil { + return x.Database + } + return nil +} + +func (x *UpdateDatabaseRequest) GetUpdateMask() *field_mask.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Metadata related to the update database operation. +type UpdateDatabaseMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateDatabaseMetadata) Reset() { + *x = UpdateDatabaseMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateDatabaseMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateDatabaseMetadata) ProtoMessage() {} + +func (x *UpdateDatabaseMetadata) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateDatabaseMetadata.ProtoReflect.Descriptor instead. +func (*UpdateDatabaseMetadata) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{6} +} + +// The request for +// [FirestoreAdmin.DeleteDatabase][mockgcp.firestore.admin.v1.FirestoreAdmin.DeleteDatabase]. +type DeleteDatabaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. A name of the form + // `projects/{project_id}/databases/{database_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The current etag of the Database. + // If an etag is provided and does not match the current etag of the database, + // deletion will be blocked and a FAILED_PRECONDITION error will be returned. + Etag string `protobuf:"bytes,3,opt,name=etag,proto3" json:"etag,omitempty"` +} + +func (x *DeleteDatabaseRequest) Reset() { + *x = DeleteDatabaseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteDatabaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteDatabaseRequest) ProtoMessage() {} + +func (x *DeleteDatabaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteDatabaseRequest.ProtoReflect.Descriptor instead. +func (*DeleteDatabaseRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{7} +} + +func (x *DeleteDatabaseRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteDatabaseRequest) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +// Metadata related to the delete database operation. +type DeleteDatabaseMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteDatabaseMetadata) Reset() { + *x = DeleteDatabaseMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteDatabaseMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteDatabaseMetadata) ProtoMessage() {} + +func (x *DeleteDatabaseMetadata) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteDatabaseMetadata.ProtoReflect.Descriptor instead. +func (*DeleteDatabaseMetadata) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{8} +} + +// The request for +// [FirestoreAdmin.CreateBackupSchedule][mockgcp.firestore.admin.v1.FirestoreAdmin.CreateBackupSchedule]. +type CreateBackupScheduleRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent database. + // + // Format `projects/{project}/databases/{database}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The backup schedule to create. + BackupSchedule *BackupSchedule `protobuf:"bytes,2,opt,name=backup_schedule,json=backupSchedule,proto3" json:"backup_schedule,omitempty"` +} + +func (x *CreateBackupScheduleRequest) Reset() { + *x = CreateBackupScheduleRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateBackupScheduleRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateBackupScheduleRequest) ProtoMessage() {} + +func (x *CreateBackupScheduleRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateBackupScheduleRequest.ProtoReflect.Descriptor instead. +func (*CreateBackupScheduleRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{9} +} + +func (x *CreateBackupScheduleRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateBackupScheduleRequest) GetBackupSchedule() *BackupSchedule { + if x != nil { + return x.BackupSchedule + } + return nil +} + +// The request for +// [FirestoreAdmin.GetBackupSchedule][mockgcp.firestore.admin.v1.FirestoreAdmin.GetBackupSchedule]. +type GetBackupScheduleRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the backup schedule. + // + // Format + // `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetBackupScheduleRequest) Reset() { + *x = GetBackupScheduleRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBackupScheduleRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBackupScheduleRequest) ProtoMessage() {} + +func (x *GetBackupScheduleRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBackupScheduleRequest.ProtoReflect.Descriptor instead. +func (*GetBackupScheduleRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{10} +} + +func (x *GetBackupScheduleRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request for +// [FirestoreAdmin.UpdateBackupSchedule][mockgcp.firestore.admin.v1.FirestoreAdmin.UpdateBackupSchedule]. +type UpdateBackupScheduleRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The backup schedule to update. + BackupSchedule *BackupSchedule `protobuf:"bytes,1,opt,name=backup_schedule,json=backupSchedule,proto3" json:"backup_schedule,omitempty"` + // The list of fields to be updated. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateBackupScheduleRequest) Reset() { + *x = UpdateBackupScheduleRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateBackupScheduleRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateBackupScheduleRequest) ProtoMessage() {} + +func (x *UpdateBackupScheduleRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateBackupScheduleRequest.ProtoReflect.Descriptor instead. +func (*UpdateBackupScheduleRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{11} +} + +func (x *UpdateBackupScheduleRequest) GetBackupSchedule() *BackupSchedule { + if x != nil { + return x.BackupSchedule + } + return nil +} + +func (x *UpdateBackupScheduleRequest) GetUpdateMask() *field_mask.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// The request for +// [FirestoreAdmin.ListBackupSchedules][mockgcp.firestore.admin.v1.FirestoreAdmin.ListBackupSchedules]. +type ListBackupSchedulesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent database. + // + // Format is `projects/{project}/databases/{database}`. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` +} + +func (x *ListBackupSchedulesRequest) Reset() { + *x = ListBackupSchedulesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListBackupSchedulesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListBackupSchedulesRequest) ProtoMessage() {} + +func (x *ListBackupSchedulesRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListBackupSchedulesRequest.ProtoReflect.Descriptor instead. +func (*ListBackupSchedulesRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{12} +} + +func (x *ListBackupSchedulesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +// The response for +// [FirestoreAdmin.ListBackupSchedules][mockgcp.firestore.admin.v1.FirestoreAdmin.ListBackupSchedules]. +type ListBackupSchedulesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of all backup schedules. + BackupSchedules []*BackupSchedule `protobuf:"bytes,1,rep,name=backup_schedules,json=backupSchedules,proto3" json:"backup_schedules,omitempty"` +} + +func (x *ListBackupSchedulesResponse) Reset() { + *x = ListBackupSchedulesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListBackupSchedulesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListBackupSchedulesResponse) ProtoMessage() {} + +func (x *ListBackupSchedulesResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListBackupSchedulesResponse.ProtoReflect.Descriptor instead. +func (*ListBackupSchedulesResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{13} +} + +func (x *ListBackupSchedulesResponse) GetBackupSchedules() []*BackupSchedule { + if x != nil { + return x.BackupSchedules + } + return nil +} + +// The request for [FirestoreAdmin.DeleteBackupSchedules][]. +type DeleteBackupScheduleRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the backup schedule. + // + // Format + // `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteBackupScheduleRequest) Reset() { + *x = DeleteBackupScheduleRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteBackupScheduleRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteBackupScheduleRequest) ProtoMessage() {} + +func (x *DeleteBackupScheduleRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteBackupScheduleRequest.ProtoReflect.Descriptor instead. +func (*DeleteBackupScheduleRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{14} +} + +func (x *DeleteBackupScheduleRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request for +// [FirestoreAdmin.CreateIndex][mockgcp.firestore.admin.v1.FirestoreAdmin.CreateIndex]. +type CreateIndexRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. A parent name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The composite index to create. + Index *Index `protobuf:"bytes,2,opt,name=index,proto3" json:"index,omitempty"` +} + +func (x *CreateIndexRequest) Reset() { + *x = CreateIndexRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateIndexRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateIndexRequest) ProtoMessage() {} + +func (x *CreateIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateIndexRequest.ProtoReflect.Descriptor instead. +func (*CreateIndexRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{15} +} + +func (x *CreateIndexRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateIndexRequest) GetIndex() *Index { + if x != nil { + return x.Index + } + return nil +} + +// The request for +// [FirestoreAdmin.ListIndexes][mockgcp.firestore.admin.v1.FirestoreAdmin.ListIndexes]. +type ListIndexesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. A parent name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The filter to apply to list results. + Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` + // The number of results to return. + PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, returned from a previous call to + // [FirestoreAdmin.ListIndexes][mockgcp.firestore.admin.v1.FirestoreAdmin.ListIndexes], + // that may be used to get the next page of results. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListIndexesRequest) Reset() { + *x = ListIndexesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListIndexesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListIndexesRequest) ProtoMessage() {} + +func (x *ListIndexesRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListIndexesRequest.ProtoReflect.Descriptor instead. +func (*ListIndexesRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{16} +} + +func (x *ListIndexesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListIndexesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListIndexesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListIndexesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// The response for +// [FirestoreAdmin.ListIndexes][mockgcp.firestore.admin.v1.FirestoreAdmin.ListIndexes]. +type ListIndexesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The requested indexes. + Indexes []*Index `protobuf:"bytes,1,rep,name=indexes,proto3" json:"indexes,omitempty"` + // A page token that may be used to request another page of results. If blank, + // this is the last page. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListIndexesResponse) Reset() { + *x = ListIndexesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListIndexesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListIndexesResponse) ProtoMessage() {} + +func (x *ListIndexesResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListIndexesResponse.ProtoReflect.Descriptor instead. +func (*ListIndexesResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{17} +} + +func (x *ListIndexesResponse) GetIndexes() []*Index { + if x != nil { + return x.Indexes + } + return nil +} + +func (x *ListIndexesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// The request for +// [FirestoreAdmin.GetIndex][mockgcp.firestore.admin.v1.FirestoreAdmin.GetIndex]. +type GetIndexRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. A name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetIndexRequest) Reset() { + *x = GetIndexRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetIndexRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetIndexRequest) ProtoMessage() {} + +func (x *GetIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetIndexRequest.ProtoReflect.Descriptor instead. +func (*GetIndexRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{18} +} + +func (x *GetIndexRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request for +// [FirestoreAdmin.DeleteIndex][mockgcp.firestore.admin.v1.FirestoreAdmin.DeleteIndex]. +type DeleteIndexRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. A name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteIndexRequest) Reset() { + *x = DeleteIndexRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteIndexRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteIndexRequest) ProtoMessage() {} + +func (x *DeleteIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteIndexRequest.ProtoReflect.Descriptor instead. +func (*DeleteIndexRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{19} +} + +func (x *DeleteIndexRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request for +// [FirestoreAdmin.UpdateField][mockgcp.firestore.admin.v1.FirestoreAdmin.UpdateField]. +type UpdateFieldRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The field to be updated. + Field *Field `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` + // A mask, relative to the field. If specified, only configuration specified + // by this field_mask will be updated in the field. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateFieldRequest) Reset() { + *x = UpdateFieldRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFieldRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFieldRequest) ProtoMessage() {} + +func (x *UpdateFieldRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateFieldRequest.ProtoReflect.Descriptor instead. +func (*UpdateFieldRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{20} +} + +func (x *UpdateFieldRequest) GetField() *Field { + if x != nil { + return x.Field + } + return nil +} + +func (x *UpdateFieldRequest) GetUpdateMask() *field_mask.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// The request for +// [FirestoreAdmin.GetField][mockgcp.firestore.admin.v1.FirestoreAdmin.GetField]. +type GetFieldRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. A name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetFieldRequest) Reset() { + *x = GetFieldRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFieldRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFieldRequest) ProtoMessage() {} + +func (x *GetFieldRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFieldRequest.ProtoReflect.Descriptor instead. +func (*GetFieldRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{21} +} + +func (x *GetFieldRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request for +// [FirestoreAdmin.ListFields][mockgcp.firestore.admin.v1.FirestoreAdmin.ListFields]. +type ListFieldsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. A parent name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The filter to apply to list results. Currently, + // [FirestoreAdmin.ListFields][mockgcp.firestore.admin.v1.FirestoreAdmin.ListFields] + // only supports listing fields that have been explicitly overridden. To issue + // this query, call + // [FirestoreAdmin.ListFields][mockgcp.firestore.admin.v1.FirestoreAdmin.ListFields] + // with a filter that includes `indexConfig.usesAncestorConfig:false` or + // `ttlConfig:*`. + Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` + // The number of results to return. + PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, returned from a previous call to + // [FirestoreAdmin.ListFields][mockgcp.firestore.admin.v1.FirestoreAdmin.ListFields], + // that may be used to get the next page of results. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListFieldsRequest) Reset() { + *x = ListFieldsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFieldsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFieldsRequest) ProtoMessage() {} + +func (x *ListFieldsRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFieldsRequest.ProtoReflect.Descriptor instead. +func (*ListFieldsRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{22} +} + +func (x *ListFieldsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListFieldsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListFieldsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListFieldsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// The response for +// [FirestoreAdmin.ListFields][mockgcp.firestore.admin.v1.FirestoreAdmin.ListFields]. +type ListFieldsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The requested fields. + Fields []*Field `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"` + // A page token that may be used to request another page of results. If blank, + // this is the last page. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListFieldsResponse) Reset() { + *x = ListFieldsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFieldsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFieldsResponse) ProtoMessage() {} + +func (x *ListFieldsResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFieldsResponse.ProtoReflect.Descriptor instead. +func (*ListFieldsResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{23} +} + +func (x *ListFieldsResponse) GetFields() []*Field { + if x != nil { + return x.Fields + } + return nil +} + +func (x *ListFieldsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// The request for +// [FirestoreAdmin.ExportDocuments][mockgcp.firestore.admin.v1.FirestoreAdmin.ExportDocuments]. +type ExportDocumentsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Database to export. Should be of the form: + // `projects/{project_id}/databases/{database_id}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Which collection ids to export. Unspecified means all collections. Each + // collection id in this list must be unique. + CollectionIds []string `protobuf:"bytes,2,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"` + // The output URI. Currently only supports Google Cloud Storage URIs of the + // form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the name + // of the Google Cloud Storage bucket and `NAMESPACE_PATH` is an optional + // Google Cloud Storage namespace path. When + // choosing a name, be sure to consider Google Cloud Storage naming + // guidelines: https://cloud.google.com/storage/docs/naming. + // If the URI is a bucket (without a namespace path), a prefix will be + // generated based on the start time. + OutputUriPrefix string `protobuf:"bytes,3,opt,name=output_uri_prefix,json=outputUriPrefix,proto3" json:"output_uri_prefix,omitempty"` + // An empty list represents all namespaces. This is the preferred + // usage for databases that don't use namespaces. + // + // An empty string element represents the default namespace. This should be + // used if the database has data in non-default namespaces, but doesn't want + // to include them. Each namespace in this list must be unique. + NamespaceIds []string `protobuf:"bytes,4,rep,name=namespace_ids,json=namespaceIds,proto3" json:"namespace_ids,omitempty"` + // The timestamp that corresponds to the version of the database to be + // exported. The timestamp must be in the past, rounded to the minute and not + // older than + // [earliestVersionTime][mockgcp.firestore.admin.v1.Database.earliest_version_time]. + // If specified, then the exported documents will represent a consistent view + // of the database at the provided time. Otherwise, there are no guarantees + // about the consistency of the exported documents. + SnapshotTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=snapshot_time,json=snapshotTime,proto3" json:"snapshot_time,omitempty"` +} + +func (x *ExportDocumentsRequest) Reset() { + *x = ExportDocumentsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExportDocumentsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExportDocumentsRequest) ProtoMessage() {} + +func (x *ExportDocumentsRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExportDocumentsRequest.ProtoReflect.Descriptor instead. +func (*ExportDocumentsRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{24} +} + +func (x *ExportDocumentsRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ExportDocumentsRequest) GetCollectionIds() []string { + if x != nil { + return x.CollectionIds + } + return nil +} + +func (x *ExportDocumentsRequest) GetOutputUriPrefix() string { + if x != nil { + return x.OutputUriPrefix + } + return "" +} + +func (x *ExportDocumentsRequest) GetNamespaceIds() []string { + if x != nil { + return x.NamespaceIds + } + return nil +} + +func (x *ExportDocumentsRequest) GetSnapshotTime() *timestamp.Timestamp { + if x != nil { + return x.SnapshotTime + } + return nil +} + +// The request for +// [FirestoreAdmin.ImportDocuments][mockgcp.firestore.admin.v1.FirestoreAdmin.ImportDocuments]. +type ImportDocumentsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Database to import into. Should be of the form: + // `projects/{project_id}/databases/{database_id}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Which collection ids to import. Unspecified means all collections included + // in the import. Each collection id in this list must be unique. + CollectionIds []string `protobuf:"bytes,2,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"` + // Location of the exported files. + // This must match the output_uri_prefix of an ExportDocumentsResponse from + // an export that has completed successfully. + // See: + // [mockgcp.firestore.admin.v1.ExportDocumentsResponse.output_uri_prefix][mockgcp.firestore.admin.v1.ExportDocumentsResponse.output_uri_prefix]. + InputUriPrefix string `protobuf:"bytes,3,opt,name=input_uri_prefix,json=inputUriPrefix,proto3" json:"input_uri_prefix,omitempty"` + // An empty list represents all namespaces. This is the preferred + // usage for databases that don't use namespaces. + // + // An empty string element represents the default namespace. This should be + // used if the database has data in non-default namespaces, but doesn't want + // to include them. Each namespace in this list must be unique. + NamespaceIds []string `protobuf:"bytes,4,rep,name=namespace_ids,json=namespaceIds,proto3" json:"namespace_ids,omitempty"` +} + +func (x *ImportDocumentsRequest) Reset() { + *x = ImportDocumentsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportDocumentsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportDocumentsRequest) ProtoMessage() {} + +func (x *ImportDocumentsRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImportDocumentsRequest.ProtoReflect.Descriptor instead. +func (*ImportDocumentsRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{25} +} + +func (x *ImportDocumentsRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ImportDocumentsRequest) GetCollectionIds() []string { + if x != nil { + return x.CollectionIds + } + return nil +} + +func (x *ImportDocumentsRequest) GetInputUriPrefix() string { + if x != nil { + return x.InputUriPrefix + } + return "" +} + +func (x *ImportDocumentsRequest) GetNamespaceIds() []string { + if x != nil { + return x.NamespaceIds + } + return nil +} + +// The request for +// [FirestoreAdmin.BulkDeleteDocuments][mockgcp.firestore.admin.v1.FirestoreAdmin.BulkDeleteDocuments]. +// +// When both collection_ids and namespace_ids are set, only documents satisfying +// both conditions will be deleted. +// +// Requests with namespace_ids and collection_ids both empty will be rejected. +// Please use +// [FirestoreAdmin.DeleteDatabase][mockgcp.firestore.admin.v1.FirestoreAdmin.DeleteDatabase] +// instead. +type BulkDeleteDocumentsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Database to operate. Should be of the form: + // `projects/{project_id}/databases/{database_id}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. IDs of the collection groups to delete. Unspecified means all + // collection groups. + // + // Each collection group in this list must be unique. + CollectionIds []string `protobuf:"bytes,2,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"` + // Optional. Namespaces to delete. + // + // An empty list means all namespaces. This is the recommended + // usage for databases that don't use namespaces. + // + // An empty string element represents the default namespace. This should be + // used if the database has data in non-default namespaces, but doesn't want + // to delete from them. + // + // Each namespace in this list must be unique. + NamespaceIds []string `protobuf:"bytes,3,rep,name=namespace_ids,json=namespaceIds,proto3" json:"namespace_ids,omitempty"` +} + +func (x *BulkDeleteDocumentsRequest) Reset() { + *x = BulkDeleteDocumentsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BulkDeleteDocumentsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BulkDeleteDocumentsRequest) ProtoMessage() {} + +func (x *BulkDeleteDocumentsRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BulkDeleteDocumentsRequest.ProtoReflect.Descriptor instead. +func (*BulkDeleteDocumentsRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{26} +} + +func (x *BulkDeleteDocumentsRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *BulkDeleteDocumentsRequest) GetCollectionIds() []string { + if x != nil { + return x.CollectionIds + } + return nil +} + +func (x *BulkDeleteDocumentsRequest) GetNamespaceIds() []string { + if x != nil { + return x.NamespaceIds + } + return nil +} + +// The response for +// [FirestoreAdmin.BulkDeleteDocuments][mockgcp.firestore.admin.v1.FirestoreAdmin.BulkDeleteDocuments]. +type BulkDeleteDocumentsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *BulkDeleteDocumentsResponse) Reset() { + *x = BulkDeleteDocumentsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BulkDeleteDocumentsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BulkDeleteDocumentsResponse) ProtoMessage() {} + +func (x *BulkDeleteDocumentsResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BulkDeleteDocumentsResponse.ProtoReflect.Descriptor instead. +func (*BulkDeleteDocumentsResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{27} +} + +// The request for +// [FirestoreAdmin.GetBackup][mockgcp.firestore.admin.v1.FirestoreAdmin.GetBackup]. +type GetBackupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the backup to fetch. + // + // Format is `projects/{project}/locations/{location}/backups/{backup}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetBackupRequest) Reset() { + *x = GetBackupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBackupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBackupRequest) ProtoMessage() {} + +func (x *GetBackupRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBackupRequest.ProtoReflect.Descriptor instead. +func (*GetBackupRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{28} +} + +func (x *GetBackupRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request for +// [FirestoreAdmin.ListBackups][mockgcp.firestore.admin.v1.FirestoreAdmin.ListBackups]. +type ListBackupsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The location to list backups from. + // + // Format is `projects/{project}/locations/{location}`. + // Use `{location} = '-'` to list backups from all locations for the given + // project. This allows listing backups from a single location or from all + // locations. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` +} + +func (x *ListBackupsRequest) Reset() { + *x = ListBackupsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListBackupsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListBackupsRequest) ProtoMessage() {} + +func (x *ListBackupsRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListBackupsRequest.ProtoReflect.Descriptor instead. +func (*ListBackupsRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{29} +} + +func (x *ListBackupsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +// The response for +// [FirestoreAdmin.ListBackups][mockgcp.firestore.admin.v1.FirestoreAdmin.ListBackups]. +type ListBackupsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of all backups for the project. + Backups []*Backup `protobuf:"bytes,1,rep,name=backups,proto3" json:"backups,omitempty"` + // List of locations that existing backups were not able to be fetched from. + // + // Instead of failing the entire requests when a single location is + // unreachable, this response returns a partial result set and list of + // locations unable to be reached here. The request can be retried against a + // single location to get a concrete error. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListBackupsResponse) Reset() { + *x = ListBackupsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListBackupsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListBackupsResponse) ProtoMessage() {} + +func (x *ListBackupsResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListBackupsResponse.ProtoReflect.Descriptor instead. +func (*ListBackupsResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{30} +} + +func (x *ListBackupsResponse) GetBackups() []*Backup { + if x != nil { + return x.Backups + } + return nil +} + +func (x *ListBackupsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// The request for +// [FirestoreAdmin.DeleteBackup][mockgcp.firestore.admin.v1.FirestoreAdmin.DeleteBackup]. +type DeleteBackupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the backup to delete. + // + // format is `projects/{project}/locations/{location}/backups/{backup}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteBackupRequest) Reset() { + *x = DeleteBackupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteBackupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteBackupRequest) ProtoMessage() {} + +func (x *DeleteBackupRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteBackupRequest.ProtoReflect.Descriptor instead. +func (*DeleteBackupRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{31} +} + +func (x *DeleteBackupRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request message for +// [FirestoreAdmin.RestoreDatabase][mockgcp.firestore.admin.v1.RestoreDatabase]. +type RestoreDatabaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The project to restore the database in. Format is + // `projects/{project_id}`. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The ID to use for the database, which will become the final + // component of the database's resource name. This database id must not be + // associated with an existing database. + // + // This value should be 4-63 characters. Valid characters are /[a-z][0-9]-/ + // with first character a letter and the last a letter or a number. Must not + // be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. + // + // "(default)" database id is also valid. + DatabaseId string `protobuf:"bytes,2,opt,name=database_id,json=databaseId,proto3" json:"database_id,omitempty"` + // Required. Backup to restore from. Must be from the same project as the + // parent. + // + // Format is: `projects/{project_id}/locations/{location}/backups/{backup}` + Backup string `protobuf:"bytes,3,opt,name=backup,proto3" json:"backup,omitempty"` +} + +func (x *RestoreDatabaseRequest) Reset() { + *x = RestoreDatabaseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RestoreDatabaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RestoreDatabaseRequest) ProtoMessage() {} + +func (x *RestoreDatabaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RestoreDatabaseRequest.ProtoReflect.Descriptor instead. +func (*RestoreDatabaseRequest) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP(), []int{32} +} + +func (x *RestoreDatabaseRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *RestoreDatabaseRequest) GetDatabaseId() string { + if x != nil { + return x.DatabaseId + } + return "" +} + +func (x *RestoreDatabaseRequest) GetBackup() string { + if x != nil { + return x.Backup + } + return "" +} + +var File_mockgcp_firestore_admin_v1_firestore_admin_proto protoreflect.FileDescriptor + +var file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDesc = []byte{ + 0x0a, 0x30, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x72, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x1a, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x1c, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x27, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x6d, 0x6f, 0x63, 0x6b, + 0x67, 0x63, 0x70, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x66, + 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, + 0x31, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x6d, + 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x66, + 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, + 0x31, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x29, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x7c, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x23, 0x12, 0x21, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x73, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, + 0xc7, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x23, 0x12, 0x21, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x08, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x49, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x7d, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x09, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, + 0x6c, 0x65, 0x22, 0x53, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, + 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x45, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, + 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x18, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x6a, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, + 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x22, 0x18, 0x0a, 0x16, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xba, 0x01, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x66, + 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x0f, 0x62, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x22, 0x5f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x58, 0x0a, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, + 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x62, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x3b, 0x0a, + 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x5f, 0x0a, 0x1a, 0x4c, 0x69, + 0x73, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, + 0x0a, 0x21, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x74, 0x0a, 0x1b, 0x4c, + 0x69, 0x73, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x10, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, + 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x52, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x73, 0x22, 0x62, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, + 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x22, 0xb2, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7a, 0x0a, 0x13, 0x4c, 0x69, 0x73, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3b, 0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x26, 0x0a, + 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x4d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, + 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, + 0x0a, 0x1e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, + 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, + 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x3b, 0x0a, 0x0b, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x4d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x20, 0x0a, 0x1e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb1, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x77, 0x0a, 0x12, 0x4c, + 0x69, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x39, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x90, 0x02, 0x0a, 0x16, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x75, 0x72, 0x69, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x55, 0x72, 0x69, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x49, 0x64, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x16, 0x49, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x5f, 0x75, 0x72, 0x69, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x55, 0x72, 0x69, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x73, 0x22, 0xb1, 0x01, 0x0a, 0x1a, 0x42, 0x75, 0x6c, 0x6b, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x66, 0x69, + 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x42, + 0x75, 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, 0x0a, 0x10, 0x47, 0x65, + 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x57, 0x0a, 0x12, 0x4c, + 0x69, 0x73, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x66, 0x69, 0x72, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x22, 0x75, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x62, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, + 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, + 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, + 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x52, 0x0a, 0x13, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xc2, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x23, 0x12, 0x21, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, + 0x0b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x66, 0x69, 0x72, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x06, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x32, 0xef, 0x25, 0x0a, 0x0e, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0xdc, 0x01, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x22, 0x3e, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x3a, 0x05, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0xda, 0x41, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0xca, 0x41, 0x1f, 0x0a, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xbf, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, + 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, + 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x12, + 0x3e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0xda, + 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xa9, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2b, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, + 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x12, 0x3e, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x2f, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, + 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4d, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x40, 0x2a, 0x3e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, + 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xa8, 0x01, 0x0a, 0x08, + 0x47, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x2b, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, + 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, + 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x4c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, + 0x12, 0x3d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x2f, 0x2a, 0x7d, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xda, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x2e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, + 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x32, 0x43, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x2f, + 0x2a, 0x7d, 0x3a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0xda, 0x41, 0x05, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0xca, 0x41, 0x1f, 0x0a, 0x05, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x16, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x12, 0xbb, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x12, 0x2d, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x4e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, + 0x7d, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x12, 0xde, 0x01, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x32, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, + 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x78, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, + 0x22, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, + 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x32, + 0x0a, 0x17, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0xdc, 0x01, 0x0a, 0x0f, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x32, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, + 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x36, 0x22, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, + 0x30, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x17, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0xf3, 0x01, 0x0a, 0x13, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x36, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, + 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, + 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x84, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x22, 0x35, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x62, 0x75, 0x6c, + 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x3a, 0x0a, 0x1b, 0x42, + 0x75, 0x6c, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x42, 0x75, 0x6c, 0x6b, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xda, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x31, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x2d, 0x22, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x3a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0xda, 0x41, 0x1b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x2c, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0xca, + 0x41, 0x22, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x16, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x95, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x12, 0x2e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, + 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, + 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x23, 0x12, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xa8, 0x01, 0x0a, + 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x12, 0x30, + 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x31, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0xda, 0x41, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xdc, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x31, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x78, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x36, 0x32, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, + 0x3a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0xda, 0x41, 0x14, 0x64, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0xca, 0x41, 0x22, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x16, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xb9, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x31, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, + 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x55, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x23, 0x2a, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0xca, 0x41, 0x22, + 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x16, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x99, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x12, 0x2c, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, + 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xac, + 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x12, 0x2e, + 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, + 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x62, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x93, 0x01, + 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x2f, + 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x2a, + 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0xc0, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x32, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5a, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2e, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x73, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3a, 0x01, 0x2a, + 0xca, 0x41, 0x23, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x17, 0x52, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xe2, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, + 0x37, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, + 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x22, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x22, 0x33, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, + 0x7d, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x73, 0x3a, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0xda, 0x41, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x62, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x11, + 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x12, 0x34, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, + 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xcc, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, + 0x36, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0xda, 0x41, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xf7, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, + 0x37, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, + 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x22, 0x7a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x32, 0x43, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x62, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x2a, + 0x7d, 0x3a, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0xda, 0x41, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, + 0x12, 0xab, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x37, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, + 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x35, 0x2a, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x76, + 0xca, 0x41, 0x18, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x58, 0x68, 0x74, + 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2c, 0x68, 0x74, 0x74, + 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, 0xa6, 0x03, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, + 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x13, 0x46, 0x69, 0x72, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x39, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, + 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x70, 0x62, 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x70, 0x62, 0xa2, 0x02, 0x04, 0x47, 0x43, + 0x46, 0x53, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x5c, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5c, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x23, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, + 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0xea, 0x41, 0x4c, 0x0a, + 0x21, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x27, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0xea, 0x41, 0x71, 0x0a, 0x28, + 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x45, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x7d, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescOnce sync.Once + file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescData = file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDesc +) + +func file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescGZIP() []byte { + file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescOnce.Do(func() { + file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescData = protoimpl.X.CompressGZIP(file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescData) + }) + return file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDescData +} + +var file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 33) +var file_mockgcp_firestore_admin_v1_firestore_admin_proto_goTypes = []interface{}{ + (*ListDatabasesRequest)(nil), // 0: mockgcp.firestore.admin.v1.ListDatabasesRequest + (*CreateDatabaseRequest)(nil), // 1: mockgcp.firestore.admin.v1.CreateDatabaseRequest + (*CreateDatabaseMetadata)(nil), // 2: mockgcp.firestore.admin.v1.CreateDatabaseMetadata + (*ListDatabasesResponse)(nil), // 3: mockgcp.firestore.admin.v1.ListDatabasesResponse + (*GetDatabaseRequest)(nil), // 4: mockgcp.firestore.admin.v1.GetDatabaseRequest + (*UpdateDatabaseRequest)(nil), // 5: mockgcp.firestore.admin.v1.UpdateDatabaseRequest + (*UpdateDatabaseMetadata)(nil), // 6: mockgcp.firestore.admin.v1.UpdateDatabaseMetadata + (*DeleteDatabaseRequest)(nil), // 7: mockgcp.firestore.admin.v1.DeleteDatabaseRequest + (*DeleteDatabaseMetadata)(nil), // 8: mockgcp.firestore.admin.v1.DeleteDatabaseMetadata + (*CreateBackupScheduleRequest)(nil), // 9: mockgcp.firestore.admin.v1.CreateBackupScheduleRequest + (*GetBackupScheduleRequest)(nil), // 10: mockgcp.firestore.admin.v1.GetBackupScheduleRequest + (*UpdateBackupScheduleRequest)(nil), // 11: mockgcp.firestore.admin.v1.UpdateBackupScheduleRequest + (*ListBackupSchedulesRequest)(nil), // 12: mockgcp.firestore.admin.v1.ListBackupSchedulesRequest + (*ListBackupSchedulesResponse)(nil), // 13: mockgcp.firestore.admin.v1.ListBackupSchedulesResponse + (*DeleteBackupScheduleRequest)(nil), // 14: mockgcp.firestore.admin.v1.DeleteBackupScheduleRequest + (*CreateIndexRequest)(nil), // 15: mockgcp.firestore.admin.v1.CreateIndexRequest + (*ListIndexesRequest)(nil), // 16: mockgcp.firestore.admin.v1.ListIndexesRequest + (*ListIndexesResponse)(nil), // 17: mockgcp.firestore.admin.v1.ListIndexesResponse + (*GetIndexRequest)(nil), // 18: mockgcp.firestore.admin.v1.GetIndexRequest + (*DeleteIndexRequest)(nil), // 19: mockgcp.firestore.admin.v1.DeleteIndexRequest + (*UpdateFieldRequest)(nil), // 20: mockgcp.firestore.admin.v1.UpdateFieldRequest + (*GetFieldRequest)(nil), // 21: mockgcp.firestore.admin.v1.GetFieldRequest + (*ListFieldsRequest)(nil), // 22: mockgcp.firestore.admin.v1.ListFieldsRequest + (*ListFieldsResponse)(nil), // 23: mockgcp.firestore.admin.v1.ListFieldsResponse + (*ExportDocumentsRequest)(nil), // 24: mockgcp.firestore.admin.v1.ExportDocumentsRequest + (*ImportDocumentsRequest)(nil), // 25: mockgcp.firestore.admin.v1.ImportDocumentsRequest + (*BulkDeleteDocumentsRequest)(nil), // 26: mockgcp.firestore.admin.v1.BulkDeleteDocumentsRequest + (*BulkDeleteDocumentsResponse)(nil), // 27: mockgcp.firestore.admin.v1.BulkDeleteDocumentsResponse + (*GetBackupRequest)(nil), // 28: mockgcp.firestore.admin.v1.GetBackupRequest + (*ListBackupsRequest)(nil), // 29: mockgcp.firestore.admin.v1.ListBackupsRequest + (*ListBackupsResponse)(nil), // 30: mockgcp.firestore.admin.v1.ListBackupsResponse + (*DeleteBackupRequest)(nil), // 31: mockgcp.firestore.admin.v1.DeleteBackupRequest + (*RestoreDatabaseRequest)(nil), // 32: mockgcp.firestore.admin.v1.RestoreDatabaseRequest + (*Database)(nil), // 33: mockgcp.firestore.admin.v1.Database + (*field_mask.FieldMask)(nil), // 34: google.protobuf.FieldMask + (*BackupSchedule)(nil), // 35: mockgcp.firestore.admin.v1.BackupSchedule + (*Index)(nil), // 36: mockgcp.firestore.admin.v1.Index + (*Field)(nil), // 37: mockgcp.firestore.admin.v1.Field + (*timestamp.Timestamp)(nil), // 38: google.protobuf.Timestamp + (*Backup)(nil), // 39: mockgcp.firestore.admin.v1.Backup + (*longrunningpb.Operation)(nil), // 40: google.longrunning.Operation + (*empty.Empty)(nil), // 41: google.protobuf.Empty +} +var file_mockgcp_firestore_admin_v1_firestore_admin_proto_depIdxs = []int32{ + 33, // 0: mockgcp.firestore.admin.v1.CreateDatabaseRequest.database:type_name -> mockgcp.firestore.admin.v1.Database + 33, // 1: mockgcp.firestore.admin.v1.ListDatabasesResponse.databases:type_name -> mockgcp.firestore.admin.v1.Database + 33, // 2: mockgcp.firestore.admin.v1.UpdateDatabaseRequest.database:type_name -> mockgcp.firestore.admin.v1.Database + 34, // 3: mockgcp.firestore.admin.v1.UpdateDatabaseRequest.update_mask:type_name -> google.protobuf.FieldMask + 35, // 4: mockgcp.firestore.admin.v1.CreateBackupScheduleRequest.backup_schedule:type_name -> mockgcp.firestore.admin.v1.BackupSchedule + 35, // 5: mockgcp.firestore.admin.v1.UpdateBackupScheduleRequest.backup_schedule:type_name -> mockgcp.firestore.admin.v1.BackupSchedule + 34, // 6: mockgcp.firestore.admin.v1.UpdateBackupScheduleRequest.update_mask:type_name -> google.protobuf.FieldMask + 35, // 7: mockgcp.firestore.admin.v1.ListBackupSchedulesResponse.backup_schedules:type_name -> mockgcp.firestore.admin.v1.BackupSchedule + 36, // 8: mockgcp.firestore.admin.v1.CreateIndexRequest.index:type_name -> mockgcp.firestore.admin.v1.Index + 36, // 9: mockgcp.firestore.admin.v1.ListIndexesResponse.indexes:type_name -> mockgcp.firestore.admin.v1.Index + 37, // 10: mockgcp.firestore.admin.v1.UpdateFieldRequest.field:type_name -> mockgcp.firestore.admin.v1.Field + 34, // 11: mockgcp.firestore.admin.v1.UpdateFieldRequest.update_mask:type_name -> google.protobuf.FieldMask + 37, // 12: mockgcp.firestore.admin.v1.ListFieldsResponse.fields:type_name -> mockgcp.firestore.admin.v1.Field + 38, // 13: mockgcp.firestore.admin.v1.ExportDocumentsRequest.snapshot_time:type_name -> google.protobuf.Timestamp + 39, // 14: mockgcp.firestore.admin.v1.ListBackupsResponse.backups:type_name -> mockgcp.firestore.admin.v1.Backup + 15, // 15: mockgcp.firestore.admin.v1.FirestoreAdmin.CreateIndex:input_type -> mockgcp.firestore.admin.v1.CreateIndexRequest + 16, // 16: mockgcp.firestore.admin.v1.FirestoreAdmin.ListIndexes:input_type -> mockgcp.firestore.admin.v1.ListIndexesRequest + 18, // 17: mockgcp.firestore.admin.v1.FirestoreAdmin.GetIndex:input_type -> mockgcp.firestore.admin.v1.GetIndexRequest + 19, // 18: mockgcp.firestore.admin.v1.FirestoreAdmin.DeleteIndex:input_type -> mockgcp.firestore.admin.v1.DeleteIndexRequest + 21, // 19: mockgcp.firestore.admin.v1.FirestoreAdmin.GetField:input_type -> mockgcp.firestore.admin.v1.GetFieldRequest + 20, // 20: mockgcp.firestore.admin.v1.FirestoreAdmin.UpdateField:input_type -> mockgcp.firestore.admin.v1.UpdateFieldRequest + 22, // 21: mockgcp.firestore.admin.v1.FirestoreAdmin.ListFields:input_type -> mockgcp.firestore.admin.v1.ListFieldsRequest + 24, // 22: mockgcp.firestore.admin.v1.FirestoreAdmin.ExportDocuments:input_type -> mockgcp.firestore.admin.v1.ExportDocumentsRequest + 25, // 23: mockgcp.firestore.admin.v1.FirestoreAdmin.ImportDocuments:input_type -> mockgcp.firestore.admin.v1.ImportDocumentsRequest + 26, // 24: mockgcp.firestore.admin.v1.FirestoreAdmin.BulkDeleteDocuments:input_type -> mockgcp.firestore.admin.v1.BulkDeleteDocumentsRequest + 1, // 25: mockgcp.firestore.admin.v1.FirestoreAdmin.CreateDatabase:input_type -> mockgcp.firestore.admin.v1.CreateDatabaseRequest + 4, // 26: mockgcp.firestore.admin.v1.FirestoreAdmin.GetDatabase:input_type -> mockgcp.firestore.admin.v1.GetDatabaseRequest + 0, // 27: mockgcp.firestore.admin.v1.FirestoreAdmin.ListDatabases:input_type -> mockgcp.firestore.admin.v1.ListDatabasesRequest + 5, // 28: mockgcp.firestore.admin.v1.FirestoreAdmin.UpdateDatabase:input_type -> mockgcp.firestore.admin.v1.UpdateDatabaseRequest + 7, // 29: mockgcp.firestore.admin.v1.FirestoreAdmin.DeleteDatabase:input_type -> mockgcp.firestore.admin.v1.DeleteDatabaseRequest + 28, // 30: mockgcp.firestore.admin.v1.FirestoreAdmin.GetBackup:input_type -> mockgcp.firestore.admin.v1.GetBackupRequest + 29, // 31: mockgcp.firestore.admin.v1.FirestoreAdmin.ListBackups:input_type -> mockgcp.firestore.admin.v1.ListBackupsRequest + 31, // 32: mockgcp.firestore.admin.v1.FirestoreAdmin.DeleteBackup:input_type -> mockgcp.firestore.admin.v1.DeleteBackupRequest + 32, // 33: mockgcp.firestore.admin.v1.FirestoreAdmin.RestoreDatabase:input_type -> mockgcp.firestore.admin.v1.RestoreDatabaseRequest + 9, // 34: mockgcp.firestore.admin.v1.FirestoreAdmin.CreateBackupSchedule:input_type -> mockgcp.firestore.admin.v1.CreateBackupScheduleRequest + 10, // 35: mockgcp.firestore.admin.v1.FirestoreAdmin.GetBackupSchedule:input_type -> mockgcp.firestore.admin.v1.GetBackupScheduleRequest + 12, // 36: mockgcp.firestore.admin.v1.FirestoreAdmin.ListBackupSchedules:input_type -> mockgcp.firestore.admin.v1.ListBackupSchedulesRequest + 11, // 37: mockgcp.firestore.admin.v1.FirestoreAdmin.UpdateBackupSchedule:input_type -> mockgcp.firestore.admin.v1.UpdateBackupScheduleRequest + 14, // 38: mockgcp.firestore.admin.v1.FirestoreAdmin.DeleteBackupSchedule:input_type -> mockgcp.firestore.admin.v1.DeleteBackupScheduleRequest + 40, // 39: mockgcp.firestore.admin.v1.FirestoreAdmin.CreateIndex:output_type -> google.longrunning.Operation + 17, // 40: mockgcp.firestore.admin.v1.FirestoreAdmin.ListIndexes:output_type -> mockgcp.firestore.admin.v1.ListIndexesResponse + 36, // 41: mockgcp.firestore.admin.v1.FirestoreAdmin.GetIndex:output_type -> mockgcp.firestore.admin.v1.Index + 41, // 42: mockgcp.firestore.admin.v1.FirestoreAdmin.DeleteIndex:output_type -> google.protobuf.Empty + 37, // 43: mockgcp.firestore.admin.v1.FirestoreAdmin.GetField:output_type -> mockgcp.firestore.admin.v1.Field + 40, // 44: mockgcp.firestore.admin.v1.FirestoreAdmin.UpdateField:output_type -> google.longrunning.Operation + 23, // 45: mockgcp.firestore.admin.v1.FirestoreAdmin.ListFields:output_type -> mockgcp.firestore.admin.v1.ListFieldsResponse + 40, // 46: mockgcp.firestore.admin.v1.FirestoreAdmin.ExportDocuments:output_type -> google.longrunning.Operation + 40, // 47: mockgcp.firestore.admin.v1.FirestoreAdmin.ImportDocuments:output_type -> google.longrunning.Operation + 40, // 48: mockgcp.firestore.admin.v1.FirestoreAdmin.BulkDeleteDocuments:output_type -> google.longrunning.Operation + 40, // 49: mockgcp.firestore.admin.v1.FirestoreAdmin.CreateDatabase:output_type -> google.longrunning.Operation + 33, // 50: mockgcp.firestore.admin.v1.FirestoreAdmin.GetDatabase:output_type -> mockgcp.firestore.admin.v1.Database + 3, // 51: mockgcp.firestore.admin.v1.FirestoreAdmin.ListDatabases:output_type -> mockgcp.firestore.admin.v1.ListDatabasesResponse + 40, // 52: mockgcp.firestore.admin.v1.FirestoreAdmin.UpdateDatabase:output_type -> google.longrunning.Operation + 40, // 53: mockgcp.firestore.admin.v1.FirestoreAdmin.DeleteDatabase:output_type -> google.longrunning.Operation + 39, // 54: mockgcp.firestore.admin.v1.FirestoreAdmin.GetBackup:output_type -> mockgcp.firestore.admin.v1.Backup + 30, // 55: mockgcp.firestore.admin.v1.FirestoreAdmin.ListBackups:output_type -> mockgcp.firestore.admin.v1.ListBackupsResponse + 41, // 56: mockgcp.firestore.admin.v1.FirestoreAdmin.DeleteBackup:output_type -> google.protobuf.Empty + 40, // 57: mockgcp.firestore.admin.v1.FirestoreAdmin.RestoreDatabase:output_type -> google.longrunning.Operation + 35, // 58: mockgcp.firestore.admin.v1.FirestoreAdmin.CreateBackupSchedule:output_type -> mockgcp.firestore.admin.v1.BackupSchedule + 35, // 59: mockgcp.firestore.admin.v1.FirestoreAdmin.GetBackupSchedule:output_type -> mockgcp.firestore.admin.v1.BackupSchedule + 13, // 60: mockgcp.firestore.admin.v1.FirestoreAdmin.ListBackupSchedules:output_type -> mockgcp.firestore.admin.v1.ListBackupSchedulesResponse + 35, // 61: mockgcp.firestore.admin.v1.FirestoreAdmin.UpdateBackupSchedule:output_type -> mockgcp.firestore.admin.v1.BackupSchedule + 41, // 62: mockgcp.firestore.admin.v1.FirestoreAdmin.DeleteBackupSchedule:output_type -> google.protobuf.Empty + 39, // [39:63] is the sub-list for method output_type + 15, // [15:39] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name +} + +func init() { file_mockgcp_firestore_admin_v1_firestore_admin_proto_init() } +func file_mockgcp_firestore_admin_v1_firestore_admin_proto_init() { + if File_mockgcp_firestore_admin_v1_firestore_admin_proto != nil { + return + } + file_mockgcp_firestore_admin_v1_backup_proto_init() + file_mockgcp_firestore_admin_v1_database_proto_init() + file_mockgcp_firestore_admin_v1_field_proto_init() + file_mockgcp_firestore_admin_v1_index_proto_init() + file_mockgcp_firestore_admin_v1_operation_proto_init() + file_mockgcp_firestore_admin_v1_schedule_proto_init() + if !protoimpl.UnsafeEnabled { + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDatabasesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateDatabaseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateDatabaseMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDatabasesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDatabaseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateDatabaseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateDatabaseMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteDatabaseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteDatabaseMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateBackupScheduleRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBackupScheduleRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateBackupScheduleRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListBackupSchedulesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListBackupSchedulesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteBackupScheduleRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateIndexRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListIndexesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListIndexesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetIndexRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteIndexRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFieldRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFieldRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFieldsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFieldsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExportDocumentsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportDocumentsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BulkDeleteDocumentsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BulkDeleteDocumentsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBackupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListBackupsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListBackupsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteBackupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RestoreDatabaseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDesc, + NumEnums: 0, + NumMessages: 33, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_mockgcp_firestore_admin_v1_firestore_admin_proto_goTypes, + DependencyIndexes: file_mockgcp_firestore_admin_v1_firestore_admin_proto_depIdxs, + MessageInfos: file_mockgcp_firestore_admin_v1_firestore_admin_proto_msgTypes, + }.Build() + File_mockgcp_firestore_admin_v1_firestore_admin_proto = out.File + file_mockgcp_firestore_admin_v1_firestore_admin_proto_rawDesc = nil + file_mockgcp_firestore_admin_v1_firestore_admin_proto_goTypes = nil + file_mockgcp_firestore_admin_v1_firestore_admin_proto_depIdxs = nil +} diff --git a/mockgcp/generated/mockgcp/firestore/admin/v1/firestore_admin.pb.gw.go b/mockgcp/generated/mockgcp/firestore/admin/v1/firestore_admin.pb.gw.go new file mode 100644 index 0000000000..61ec25ea08 --- /dev/null +++ b/mockgcp/generated/mockgcp/firestore/admin/v1/firestore_admin.pb.gw.go @@ -0,0 +1,2904 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: mockgcp/firestore/admin/v1/firestore_admin.proto + +/* +Package adminpb is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package adminpb + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +func request_FirestoreAdmin_CreateIndex_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateIndexRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Index); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + msg, err := client.CreateIndex(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_CreateIndex_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateIndexRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Index); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + msg, err := server.CreateIndex(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FirestoreAdmin_ListIndexes_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_FirestoreAdmin_ListIndexes_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListIndexesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FirestoreAdmin_ListIndexes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListIndexes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_ListIndexes_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListIndexesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FirestoreAdmin_ListIndexes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListIndexes(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FirestoreAdmin_GetIndex_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetIndexRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetIndex(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_GetIndex_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetIndexRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetIndex(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FirestoreAdmin_DeleteIndex_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteIndexRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.DeleteIndex(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_DeleteIndex_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteIndexRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.DeleteIndex(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FirestoreAdmin_GetField_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFieldRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetField(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_GetField_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFieldRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetField(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FirestoreAdmin_UpdateField_0 = &utilities.DoubleArray{Encoding: map[string]int{"field": 0, "name": 1}, Base: []int{1, 2, 1, 0, 0}, Check: []int{0, 1, 2, 3, 2}} +) + +func request_FirestoreAdmin_UpdateField_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateFieldRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Field); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.Field); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["field.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "field.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "field.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "field.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FirestoreAdmin_UpdateField_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateField(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_UpdateField_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateFieldRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Field); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.Field); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["field.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "field.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "field.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "field.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FirestoreAdmin_UpdateField_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateField(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FirestoreAdmin_ListFields_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_FirestoreAdmin_ListFields_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListFieldsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FirestoreAdmin_ListFields_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListFields(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_ListFields_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListFieldsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FirestoreAdmin_ListFields_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListFields(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FirestoreAdmin_ExportDocuments_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExportDocumentsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.ExportDocuments(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_ExportDocuments_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExportDocumentsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.ExportDocuments(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FirestoreAdmin_ImportDocuments_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ImportDocumentsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.ImportDocuments(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_ImportDocuments_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ImportDocumentsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.ImportDocuments(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FirestoreAdmin_BulkDeleteDocuments_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BulkDeleteDocumentsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.BulkDeleteDocuments(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_BulkDeleteDocuments_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BulkDeleteDocumentsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.BulkDeleteDocuments(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FirestoreAdmin_CreateDatabase_0 = &utilities.DoubleArray{Encoding: map[string]int{"database": 0, "parent": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_FirestoreAdmin_CreateDatabase_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateDatabaseRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Database); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FirestoreAdmin_CreateDatabase_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateDatabase(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_CreateDatabase_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateDatabaseRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Database); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FirestoreAdmin_CreateDatabase_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateDatabase(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FirestoreAdmin_GetDatabase_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetDatabaseRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetDatabase(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_GetDatabase_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetDatabaseRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetDatabase(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FirestoreAdmin_ListDatabases_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_FirestoreAdmin_ListDatabases_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListDatabasesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FirestoreAdmin_ListDatabases_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListDatabases(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_ListDatabases_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListDatabasesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FirestoreAdmin_ListDatabases_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListDatabases(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FirestoreAdmin_UpdateDatabase_0 = &utilities.DoubleArray{Encoding: map[string]int{"database": 0, "name": 1}, Base: []int{1, 2, 1, 0, 0}, Check: []int{0, 1, 2, 3, 2}} +) + +func request_FirestoreAdmin_UpdateDatabase_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateDatabaseRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Database); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.Database); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["database.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "database.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "database.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "database.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FirestoreAdmin_UpdateDatabase_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateDatabase(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_UpdateDatabase_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateDatabaseRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Database); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.Database); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["database.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "database.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "database.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "database.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FirestoreAdmin_UpdateDatabase_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateDatabase(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FirestoreAdmin_DeleteDatabase_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_FirestoreAdmin_DeleteDatabase_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteDatabaseRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FirestoreAdmin_DeleteDatabase_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteDatabase(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_DeleteDatabase_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteDatabaseRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FirestoreAdmin_DeleteDatabase_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteDatabase(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FirestoreAdmin_GetBackup_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetBackupRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetBackup(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_GetBackup_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetBackupRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetBackup(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FirestoreAdmin_ListBackups_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListBackupsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + msg, err := client.ListBackups(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_ListBackups_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListBackupsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + msg, err := server.ListBackups(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FirestoreAdmin_DeleteBackup_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteBackupRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.DeleteBackup(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_DeleteBackup_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteBackupRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.DeleteBackup(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FirestoreAdmin_RestoreDatabase_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RestoreDatabaseRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + msg, err := client.RestoreDatabase(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_RestoreDatabase_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RestoreDatabaseRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + msg, err := server.RestoreDatabase(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FirestoreAdmin_CreateBackupSchedule_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateBackupScheduleRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.BackupSchedule); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + msg, err := client.CreateBackupSchedule(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_CreateBackupSchedule_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateBackupScheduleRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.BackupSchedule); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + msg, err := server.CreateBackupSchedule(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FirestoreAdmin_GetBackupSchedule_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetBackupScheduleRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetBackupSchedule(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_GetBackupSchedule_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetBackupScheduleRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetBackupSchedule(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FirestoreAdmin_ListBackupSchedules_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListBackupSchedulesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + msg, err := client.ListBackupSchedules(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_ListBackupSchedules_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListBackupSchedulesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + msg, err := server.ListBackupSchedules(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FirestoreAdmin_UpdateBackupSchedule_0 = &utilities.DoubleArray{Encoding: map[string]int{"backup_schedule": 0, "name": 1}, Base: []int{1, 2, 1, 0, 0}, Check: []int{0, 1, 2, 3, 2}} +) + +func request_FirestoreAdmin_UpdateBackupSchedule_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateBackupScheduleRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.BackupSchedule); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.BackupSchedule); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["backup_schedule.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "backup_schedule.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "backup_schedule.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "backup_schedule.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FirestoreAdmin_UpdateBackupSchedule_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateBackupSchedule(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_UpdateBackupSchedule_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateBackupScheduleRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.BackupSchedule); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.BackupSchedule); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["backup_schedule.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "backup_schedule.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "backup_schedule.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "backup_schedule.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FirestoreAdmin_UpdateBackupSchedule_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateBackupSchedule(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FirestoreAdmin_DeleteBackupSchedule_0(ctx context.Context, marshaler runtime.Marshaler, client FirestoreAdminClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteBackupScheduleRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.DeleteBackupSchedule(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FirestoreAdmin_DeleteBackupSchedule_0(ctx context.Context, marshaler runtime.Marshaler, server FirestoreAdminServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteBackupScheduleRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.DeleteBackupSchedule(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterFirestoreAdminHandlerServer registers the http handlers for service FirestoreAdmin to "mux". +// UnaryRPC :call FirestoreAdminServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterFirestoreAdminHandlerFromEndpoint instead. +func RegisterFirestoreAdminHandlerServer(ctx context.Context, mux *runtime.ServeMux, server FirestoreAdminServer) error { + + mux.Handle("POST", pattern_FirestoreAdmin_CreateIndex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/CreateIndex", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/databases/*/collectionGroups/*}/indexes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_CreateIndex_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_CreateIndex_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_ListIndexes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListIndexes", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/databases/*/collectionGroups/*}/indexes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_ListIndexes_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_ListIndexes_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_GetIndex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetIndex", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*/collectionGroups/*/indexes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_GetIndex_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_GetIndex_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FirestoreAdmin_DeleteIndex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/DeleteIndex", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*/collectionGroups/*/indexes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_DeleteIndex_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_DeleteIndex_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_GetField_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetField", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*/collectionGroups/*/fields/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_GetField_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_GetField_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FirestoreAdmin_UpdateField_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/UpdateField", runtime.WithHTTPPathPattern("/v1/{field.name=projects/*/databases/*/collectionGroups/*/fields/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_UpdateField_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_UpdateField_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_ListFields_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListFields", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/databases/*/collectionGroups/*}/fields")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_ListFields_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_ListFields_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FirestoreAdmin_ExportDocuments_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ExportDocuments", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*}:exportDocuments")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_ExportDocuments_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_ExportDocuments_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FirestoreAdmin_ImportDocuments_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ImportDocuments", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*}:importDocuments")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_ImportDocuments_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_ImportDocuments_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FirestoreAdmin_BulkDeleteDocuments_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/BulkDeleteDocuments", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*}:bulkDeleteDocuments")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_BulkDeleteDocuments_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_BulkDeleteDocuments_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FirestoreAdmin_CreateDatabase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/CreateDatabase", runtime.WithHTTPPathPattern("/v1/{parent=projects/*}/databases")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_CreateDatabase_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_CreateDatabase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_GetDatabase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetDatabase", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_GetDatabase_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_GetDatabase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_ListDatabases_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListDatabases", runtime.WithHTTPPathPattern("/v1/{parent=projects/*}/databases")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_ListDatabases_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_ListDatabases_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FirestoreAdmin_UpdateDatabase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/UpdateDatabase", runtime.WithHTTPPathPattern("/v1/{database.name=projects/*/databases/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_UpdateDatabase_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_UpdateDatabase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FirestoreAdmin_DeleteDatabase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/DeleteDatabase", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_DeleteDatabase_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_DeleteDatabase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_GetBackup_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetBackup", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/backups/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_GetBackup_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_GetBackup_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_ListBackups_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListBackups", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*}/backups")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_ListBackups_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_ListBackups_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FirestoreAdmin_DeleteBackup_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/DeleteBackup", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/backups/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_DeleteBackup_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_DeleteBackup_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FirestoreAdmin_RestoreDatabase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/RestoreDatabase", runtime.WithHTTPPathPattern("/v1/{parent=projects/*}/databases:restore")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_RestoreDatabase_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_RestoreDatabase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FirestoreAdmin_CreateBackupSchedule_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/CreateBackupSchedule", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/databases/*}/backupSchedules")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_CreateBackupSchedule_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_CreateBackupSchedule_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_GetBackupSchedule_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetBackupSchedule", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*/backupSchedules/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_GetBackupSchedule_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_GetBackupSchedule_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_ListBackupSchedules_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListBackupSchedules", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/databases/*}/backupSchedules")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_ListBackupSchedules_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_ListBackupSchedules_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FirestoreAdmin_UpdateBackupSchedule_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/UpdateBackupSchedule", runtime.WithHTTPPathPattern("/v1/{backup_schedule.name=projects/*/databases/*/backupSchedules/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_UpdateBackupSchedule_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_UpdateBackupSchedule_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FirestoreAdmin_DeleteBackupSchedule_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/DeleteBackupSchedule", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*/backupSchedules/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FirestoreAdmin_DeleteBackupSchedule_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_DeleteBackupSchedule_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterFirestoreAdminHandlerFromEndpoint is same as RegisterFirestoreAdminHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterFirestoreAdminHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterFirestoreAdminHandler(ctx, mux, conn) +} + +// RegisterFirestoreAdminHandler registers the http handlers for service FirestoreAdmin to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterFirestoreAdminHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterFirestoreAdminHandlerClient(ctx, mux, NewFirestoreAdminClient(conn)) +} + +// RegisterFirestoreAdminHandlerClient registers the http handlers for service FirestoreAdmin +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "FirestoreAdminClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "FirestoreAdminClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "FirestoreAdminClient" to call the correct interceptors. +func RegisterFirestoreAdminHandlerClient(ctx context.Context, mux *runtime.ServeMux, client FirestoreAdminClient) error { + + mux.Handle("POST", pattern_FirestoreAdmin_CreateIndex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/CreateIndex", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/databases/*/collectionGroups/*}/indexes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_CreateIndex_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_CreateIndex_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_ListIndexes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListIndexes", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/databases/*/collectionGroups/*}/indexes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_ListIndexes_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_ListIndexes_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_GetIndex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetIndex", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*/collectionGroups/*/indexes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_GetIndex_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_GetIndex_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FirestoreAdmin_DeleteIndex_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/DeleteIndex", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*/collectionGroups/*/indexes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_DeleteIndex_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_DeleteIndex_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_GetField_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetField", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*/collectionGroups/*/fields/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_GetField_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_GetField_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FirestoreAdmin_UpdateField_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/UpdateField", runtime.WithHTTPPathPattern("/v1/{field.name=projects/*/databases/*/collectionGroups/*/fields/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_UpdateField_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_UpdateField_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_ListFields_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListFields", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/databases/*/collectionGroups/*}/fields")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_ListFields_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_ListFields_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FirestoreAdmin_ExportDocuments_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ExportDocuments", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*}:exportDocuments")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_ExportDocuments_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_ExportDocuments_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FirestoreAdmin_ImportDocuments_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ImportDocuments", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*}:importDocuments")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_ImportDocuments_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_ImportDocuments_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FirestoreAdmin_BulkDeleteDocuments_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/BulkDeleteDocuments", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*}:bulkDeleteDocuments")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_BulkDeleteDocuments_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_BulkDeleteDocuments_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FirestoreAdmin_CreateDatabase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/CreateDatabase", runtime.WithHTTPPathPattern("/v1/{parent=projects/*}/databases")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_CreateDatabase_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_CreateDatabase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_GetDatabase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetDatabase", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_GetDatabase_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_GetDatabase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_ListDatabases_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListDatabases", runtime.WithHTTPPathPattern("/v1/{parent=projects/*}/databases")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_ListDatabases_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_ListDatabases_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FirestoreAdmin_UpdateDatabase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/UpdateDatabase", runtime.WithHTTPPathPattern("/v1/{database.name=projects/*/databases/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_UpdateDatabase_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_UpdateDatabase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FirestoreAdmin_DeleteDatabase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/DeleteDatabase", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_DeleteDatabase_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_DeleteDatabase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_GetBackup_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetBackup", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/backups/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_GetBackup_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_GetBackup_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_ListBackups_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListBackups", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/locations/*}/backups")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_ListBackups_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_ListBackups_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FirestoreAdmin_DeleteBackup_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/DeleteBackup", runtime.WithHTTPPathPattern("/v1/{name=projects/*/locations/*/backups/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_DeleteBackup_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_DeleteBackup_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FirestoreAdmin_RestoreDatabase_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/RestoreDatabase", runtime.WithHTTPPathPattern("/v1/{parent=projects/*}/databases:restore")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_RestoreDatabase_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_RestoreDatabase_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FirestoreAdmin_CreateBackupSchedule_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/CreateBackupSchedule", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/databases/*}/backupSchedules")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_CreateBackupSchedule_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_CreateBackupSchedule_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_GetBackupSchedule_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetBackupSchedule", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*/backupSchedules/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_GetBackupSchedule_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_GetBackupSchedule_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FirestoreAdmin_ListBackupSchedules_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListBackupSchedules", runtime.WithHTTPPathPattern("/v1/{parent=projects/*/databases/*}/backupSchedules")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_ListBackupSchedules_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_ListBackupSchedules_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FirestoreAdmin_UpdateBackupSchedule_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/UpdateBackupSchedule", runtime.WithHTTPPathPattern("/v1/{backup_schedule.name=projects/*/databases/*/backupSchedules/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_UpdateBackupSchedule_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_UpdateBackupSchedule_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FirestoreAdmin_DeleteBackupSchedule_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/mockgcp.firestore.admin.v1.FirestoreAdmin/DeleteBackupSchedule", runtime.WithHTTPPathPattern("/v1/{name=projects/*/databases/*/backupSchedules/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FirestoreAdmin_DeleteBackupSchedule_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FirestoreAdmin_DeleteBackupSchedule_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_FirestoreAdmin_CreateIndex_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4, 2, 5}, []string{"v1", "projects", "databases", "collectionGroups", "parent", "indexes"}, "")) + + pattern_FirestoreAdmin_ListIndexes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4, 2, 5}, []string{"v1", "projects", "databases", "collectionGroups", "parent", "indexes"}, "")) + + pattern_FirestoreAdmin_GetIndex_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "databases", "collectionGroups", "indexes", "name"}, "")) + + pattern_FirestoreAdmin_DeleteIndex_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "databases", "collectionGroups", "indexes", "name"}, "")) + + pattern_FirestoreAdmin_GetField_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "databases", "collectionGroups", "fields", "name"}, "")) + + pattern_FirestoreAdmin_UpdateField_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 2, 4, 1, 0, 4, 8, 5, 5}, []string{"v1", "projects", "databases", "collectionGroups", "fields", "field.name"}, "")) + + pattern_FirestoreAdmin_ListFields_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4, 2, 5}, []string{"v1", "projects", "databases", "collectionGroups", "parent", "fields"}, "")) + + pattern_FirestoreAdmin_ExportDocuments_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "projects", "databases", "name"}, "exportDocuments")) + + pattern_FirestoreAdmin_ImportDocuments_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "projects", "databases", "name"}, "importDocuments")) + + pattern_FirestoreAdmin_BulkDeleteDocuments_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "projects", "databases", "name"}, "bulkDeleteDocuments")) + + pattern_FirestoreAdmin_CreateDatabase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2, 2, 3}, []string{"v1", "projects", "parent", "databases"}, "")) + + pattern_FirestoreAdmin_GetDatabase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "projects", "databases", "name"}, "")) + + pattern_FirestoreAdmin_ListDatabases_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2, 2, 3}, []string{"v1", "projects", "parent", "databases"}, "")) + + pattern_FirestoreAdmin_UpdateDatabase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "projects", "databases", "database.name"}, "")) + + pattern_FirestoreAdmin_DeleteDatabase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "projects", "databases", "name"}, "")) + + pattern_FirestoreAdmin_GetBackup_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4}, []string{"v1", "projects", "locations", "backups", "name"}, "")) + + pattern_FirestoreAdmin_ListBackups_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3, 2, 4}, []string{"v1", "projects", "locations", "parent", "backups"}, "")) + + pattern_FirestoreAdmin_DeleteBackup_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4}, []string{"v1", "projects", "locations", "backups", "name"}, "")) + + pattern_FirestoreAdmin_RestoreDatabase_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2, 2, 3}, []string{"v1", "projects", "parent", "databases"}, "restore")) + + pattern_FirestoreAdmin_CreateBackupSchedule_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3, 2, 4}, []string{"v1", "projects", "databases", "parent", "backupSchedules"}, "")) + + pattern_FirestoreAdmin_GetBackupSchedule_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4}, []string{"v1", "projects", "databases", "backupSchedules", "name"}, "")) + + pattern_FirestoreAdmin_ListBackupSchedules_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3, 2, 4}, []string{"v1", "projects", "databases", "parent", "backupSchedules"}, "")) + + pattern_FirestoreAdmin_UpdateBackupSchedule_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4}, []string{"v1", "projects", "databases", "backupSchedules", "backup_schedule.name"}, "")) + + pattern_FirestoreAdmin_DeleteBackupSchedule_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 3, 1, 0, 4, 6, 5, 4}, []string{"v1", "projects", "databases", "backupSchedules", "name"}, "")) +) + +var ( + forward_FirestoreAdmin_CreateIndex_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_ListIndexes_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_GetIndex_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_DeleteIndex_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_GetField_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_UpdateField_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_ListFields_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_ExportDocuments_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_ImportDocuments_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_BulkDeleteDocuments_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_CreateDatabase_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_GetDatabase_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_ListDatabases_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_UpdateDatabase_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_DeleteDatabase_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_GetBackup_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_ListBackups_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_DeleteBackup_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_RestoreDatabase_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_CreateBackupSchedule_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_GetBackupSchedule_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_ListBackupSchedules_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_UpdateBackupSchedule_0 = runtime.ForwardResponseMessage + + forward_FirestoreAdmin_DeleteBackupSchedule_0 = runtime.ForwardResponseMessage +) diff --git a/mockgcp/generated/mockgcp/firestore/admin/v1/firestore_admin_grpc.pb.go b/mockgcp/generated/mockgcp/firestore/admin/v1/firestore_admin_grpc.pb.go new file mode 100644 index 0000000000..2cd8eb9be7 --- /dev/null +++ b/mockgcp/generated/mockgcp/firestore/admin/v1/firestore_admin_grpc.pb.go @@ -0,0 +1,1115 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.12.4 +// source: mockgcp/firestore/admin/v1/firestore_admin.proto + +package adminpb + +import ( + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + context "context" + empty "github.com/golang/protobuf/ptypes/empty" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// FirestoreAdminClient is the client API for FirestoreAdmin service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type FirestoreAdminClient interface { + // Creates a composite index. This returns a + // [google.longrunning.Operation][google.longrunning.Operation] which may be + // used to track the status of the creation. The metadata for the operation + // will be the type + // [IndexOperationMetadata][mockgcp.firestore.admin.v1.IndexOperationMetadata]. + CreateIndex(ctx context.Context, in *CreateIndexRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists composite indexes. + ListIndexes(ctx context.Context, in *ListIndexesRequest, opts ...grpc.CallOption) (*ListIndexesResponse, error) + // Gets a composite index. + GetIndex(ctx context.Context, in *GetIndexRequest, opts ...grpc.CallOption) (*Index, error) + // Deletes a composite index. + DeleteIndex(ctx context.Context, in *DeleteIndexRequest, opts ...grpc.CallOption) (*empty.Empty, error) + // Gets the metadata and configuration for a Field. + GetField(ctx context.Context, in *GetFieldRequest, opts ...grpc.CallOption) (*Field, error) + // Updates a field configuration. Currently, field updates apply only to + // single field index configuration. However, calls to + // [FirestoreAdmin.UpdateField][mockgcp.firestore.admin.v1.FirestoreAdmin.UpdateField] + // should provide a field mask to avoid changing any configuration that the + // caller isn't aware of. The field mask should be specified as: `{ paths: + // "index_config" }`. + // + // This call returns a + // [google.longrunning.Operation][google.longrunning.Operation] which may be + // used to track the status of the field update. The metadata for the + // operation will be the type + // [FieldOperationMetadata][mockgcp.firestore.admin.v1.FieldOperationMetadata]. + // + // To configure the default field settings for the database, use + // the special `Field` with resource name: + // `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*`. + UpdateField(ctx context.Context, in *UpdateFieldRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists the field configuration and metadata for this database. + // + // Currently, + // [FirestoreAdmin.ListFields][mockgcp.firestore.admin.v1.FirestoreAdmin.ListFields] + // only supports listing fields that have been explicitly overridden. To issue + // this query, call + // [FirestoreAdmin.ListFields][mockgcp.firestore.admin.v1.FirestoreAdmin.ListFields] + // with the filter set to `indexConfig.usesAncestorConfig:false` or + // `ttlConfig:*`. + ListFields(ctx context.Context, in *ListFieldsRequest, opts ...grpc.CallOption) (*ListFieldsResponse, error) + // Exports a copy of all or a subset of documents from Google Cloud Firestore + // to another storage system, such as Google Cloud Storage. Recent updates to + // documents may not be reflected in the export. The export occurs in the + // background and its progress can be monitored and managed via the + // Operation resource that is created. The output of an export may only be + // used once the associated operation is done. If an export operation is + // cancelled before completion it may leave partial data behind in Google + // Cloud Storage. + // + // For more details on export behavior and output format, refer to: + // https://cloud.google.com/firestore/docs/manage-data/export-import + ExportDocuments(ctx context.Context, in *ExportDocumentsRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Imports documents into Google Cloud Firestore. Existing documents with the + // same name are overwritten. The import occurs in the background and its + // progress can be monitored and managed via the Operation resource that is + // created. If an ImportDocuments operation is cancelled, it is possible + // that a subset of the data has already been imported to Cloud Firestore. + ImportDocuments(ctx context.Context, in *ImportDocumentsRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Bulk deletes a subset of documents from Google Cloud Firestore. + // Documents created or updated after the underlying system starts to process + // the request will not be deleted. The bulk delete occurs in the background + // and its progress can be monitored and managed via the Operation resource + // that is created. + // + // For more details on bulk delete behavior, refer to: + // https://cloud.google.com/firestore/docs/manage-data/bulk-delete + BulkDeleteDocuments(ctx context.Context, in *BulkDeleteDocumentsRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Create a database. + CreateDatabase(ctx context.Context, in *CreateDatabaseRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Gets information about a database. + GetDatabase(ctx context.Context, in *GetDatabaseRequest, opts ...grpc.CallOption) (*Database, error) + // List all the databases in the project. + ListDatabases(ctx context.Context, in *ListDatabasesRequest, opts ...grpc.CallOption) (*ListDatabasesResponse, error) + // Updates a database. + UpdateDatabase(ctx context.Context, in *UpdateDatabaseRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a database. + DeleteDatabase(ctx context.Context, in *DeleteDatabaseRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Gets information about a backup. + GetBackup(ctx context.Context, in *GetBackupRequest, opts ...grpc.CallOption) (*Backup, error) + // Lists all the backups. + ListBackups(ctx context.Context, in *ListBackupsRequest, opts ...grpc.CallOption) (*ListBackupsResponse, error) + // Deletes a backup. + DeleteBackup(ctx context.Context, in *DeleteBackupRequest, opts ...grpc.CallOption) (*empty.Empty, error) + // Creates a new database by restoring from an existing backup. + // + // The new database must be in the same cloud region or multi-region location + // as the existing backup. This behaves similar to + // [FirestoreAdmin.CreateDatabase][mockgcp.firestore.admin.v1.FirestoreAdmin.CreateDatabase] + // except instead of creating a new empty database, a new database is created + // with the database type, index configuration, and documents from an existing + // backup. + // + // The [long-running operation][google.longrunning.Operation] can be used to + // track the progress of the restore, with the Operation's + // [metadata][google.longrunning.Operation.metadata] field type being the + // [RestoreDatabaseMetadata][mockgcp.firestore.admin.v1.RestoreDatabaseMetadata]. + // The [response][google.longrunning.Operation.response] type is the + // [Database][mockgcp.firestore.admin.v1.Database] if the restore was + // successful. The new database is not readable or writeable until the LRO has + // completed. + RestoreDatabase(ctx context.Context, in *RestoreDatabaseRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Creates a backup schedule on a database. + // At most two backup schedules can be configured on a database, one daily + // backup schedule and one weekly backup schedule. + CreateBackupSchedule(ctx context.Context, in *CreateBackupScheduleRequest, opts ...grpc.CallOption) (*BackupSchedule, error) + // Gets information about a backup schedule. + GetBackupSchedule(ctx context.Context, in *GetBackupScheduleRequest, opts ...grpc.CallOption) (*BackupSchedule, error) + // List backup schedules. + ListBackupSchedules(ctx context.Context, in *ListBackupSchedulesRequest, opts ...grpc.CallOption) (*ListBackupSchedulesResponse, error) + // Updates a backup schedule. + UpdateBackupSchedule(ctx context.Context, in *UpdateBackupScheduleRequest, opts ...grpc.CallOption) (*BackupSchedule, error) + // Deletes a backup schedule. + DeleteBackupSchedule(ctx context.Context, in *DeleteBackupScheduleRequest, opts ...grpc.CallOption) (*empty.Empty, error) +} + +type firestoreAdminClient struct { + cc grpc.ClientConnInterface +} + +func NewFirestoreAdminClient(cc grpc.ClientConnInterface) FirestoreAdminClient { + return &firestoreAdminClient{cc} +} + +func (c *firestoreAdminClient) CreateIndex(ctx context.Context, in *CreateIndexRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/CreateIndex", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) ListIndexes(ctx context.Context, in *ListIndexesRequest, opts ...grpc.CallOption) (*ListIndexesResponse, error) { + out := new(ListIndexesResponse) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListIndexes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) GetIndex(ctx context.Context, in *GetIndexRequest, opts ...grpc.CallOption) (*Index, error) { + out := new(Index) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetIndex", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) DeleteIndex(ctx context.Context, in *DeleteIndexRequest, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/DeleteIndex", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) GetField(ctx context.Context, in *GetFieldRequest, opts ...grpc.CallOption) (*Field, error) { + out := new(Field) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetField", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) UpdateField(ctx context.Context, in *UpdateFieldRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/UpdateField", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) ListFields(ctx context.Context, in *ListFieldsRequest, opts ...grpc.CallOption) (*ListFieldsResponse, error) { + out := new(ListFieldsResponse) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListFields", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) ExportDocuments(ctx context.Context, in *ExportDocumentsRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ExportDocuments", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) ImportDocuments(ctx context.Context, in *ImportDocumentsRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ImportDocuments", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) BulkDeleteDocuments(ctx context.Context, in *BulkDeleteDocumentsRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/BulkDeleteDocuments", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) CreateDatabase(ctx context.Context, in *CreateDatabaseRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/CreateDatabase", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) GetDatabase(ctx context.Context, in *GetDatabaseRequest, opts ...grpc.CallOption) (*Database, error) { + out := new(Database) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetDatabase", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) ListDatabases(ctx context.Context, in *ListDatabasesRequest, opts ...grpc.CallOption) (*ListDatabasesResponse, error) { + out := new(ListDatabasesResponse) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListDatabases", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) UpdateDatabase(ctx context.Context, in *UpdateDatabaseRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/UpdateDatabase", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) DeleteDatabase(ctx context.Context, in *DeleteDatabaseRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/DeleteDatabase", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) GetBackup(ctx context.Context, in *GetBackupRequest, opts ...grpc.CallOption) (*Backup, error) { + out := new(Backup) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetBackup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) ListBackups(ctx context.Context, in *ListBackupsRequest, opts ...grpc.CallOption) (*ListBackupsResponse, error) { + out := new(ListBackupsResponse) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListBackups", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) DeleteBackup(ctx context.Context, in *DeleteBackupRequest, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/DeleteBackup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) RestoreDatabase(ctx context.Context, in *RestoreDatabaseRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/RestoreDatabase", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) CreateBackupSchedule(ctx context.Context, in *CreateBackupScheduleRequest, opts ...grpc.CallOption) (*BackupSchedule, error) { + out := new(BackupSchedule) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/CreateBackupSchedule", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) GetBackupSchedule(ctx context.Context, in *GetBackupScheduleRequest, opts ...grpc.CallOption) (*BackupSchedule, error) { + out := new(BackupSchedule) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetBackupSchedule", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) ListBackupSchedules(ctx context.Context, in *ListBackupSchedulesRequest, opts ...grpc.CallOption) (*ListBackupSchedulesResponse, error) { + out := new(ListBackupSchedulesResponse) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListBackupSchedules", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) UpdateBackupSchedule(ctx context.Context, in *UpdateBackupScheduleRequest, opts ...grpc.CallOption) (*BackupSchedule, error) { + out := new(BackupSchedule) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/UpdateBackupSchedule", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) DeleteBackupSchedule(ctx context.Context, in *DeleteBackupScheduleRequest, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/mockgcp.firestore.admin.v1.FirestoreAdmin/DeleteBackupSchedule", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// FirestoreAdminServer is the server API for FirestoreAdmin service. +// All implementations must embed UnimplementedFirestoreAdminServer +// for forward compatibility +type FirestoreAdminServer interface { + // Creates a composite index. This returns a + // [google.longrunning.Operation][google.longrunning.Operation] which may be + // used to track the status of the creation. The metadata for the operation + // will be the type + // [IndexOperationMetadata][mockgcp.firestore.admin.v1.IndexOperationMetadata]. + CreateIndex(context.Context, *CreateIndexRequest) (*longrunningpb.Operation, error) + // Lists composite indexes. + ListIndexes(context.Context, *ListIndexesRequest) (*ListIndexesResponse, error) + // Gets a composite index. + GetIndex(context.Context, *GetIndexRequest) (*Index, error) + // Deletes a composite index. + DeleteIndex(context.Context, *DeleteIndexRequest) (*empty.Empty, error) + // Gets the metadata and configuration for a Field. + GetField(context.Context, *GetFieldRequest) (*Field, error) + // Updates a field configuration. Currently, field updates apply only to + // single field index configuration. However, calls to + // [FirestoreAdmin.UpdateField][mockgcp.firestore.admin.v1.FirestoreAdmin.UpdateField] + // should provide a field mask to avoid changing any configuration that the + // caller isn't aware of. The field mask should be specified as: `{ paths: + // "index_config" }`. + // + // This call returns a + // [google.longrunning.Operation][google.longrunning.Operation] which may be + // used to track the status of the field update. The metadata for the + // operation will be the type + // [FieldOperationMetadata][mockgcp.firestore.admin.v1.FieldOperationMetadata]. + // + // To configure the default field settings for the database, use + // the special `Field` with resource name: + // `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*`. + UpdateField(context.Context, *UpdateFieldRequest) (*longrunningpb.Operation, error) + // Lists the field configuration and metadata for this database. + // + // Currently, + // [FirestoreAdmin.ListFields][mockgcp.firestore.admin.v1.FirestoreAdmin.ListFields] + // only supports listing fields that have been explicitly overridden. To issue + // this query, call + // [FirestoreAdmin.ListFields][mockgcp.firestore.admin.v1.FirestoreAdmin.ListFields] + // with the filter set to `indexConfig.usesAncestorConfig:false` or + // `ttlConfig:*`. + ListFields(context.Context, *ListFieldsRequest) (*ListFieldsResponse, error) + // Exports a copy of all or a subset of documents from Google Cloud Firestore + // to another storage system, such as Google Cloud Storage. Recent updates to + // documents may not be reflected in the export. The export occurs in the + // background and its progress can be monitored and managed via the + // Operation resource that is created. The output of an export may only be + // used once the associated operation is done. If an export operation is + // cancelled before completion it may leave partial data behind in Google + // Cloud Storage. + // + // For more details on export behavior and output format, refer to: + // https://cloud.google.com/firestore/docs/manage-data/export-import + ExportDocuments(context.Context, *ExportDocumentsRequest) (*longrunningpb.Operation, error) + // Imports documents into Google Cloud Firestore. Existing documents with the + // same name are overwritten. The import occurs in the background and its + // progress can be monitored and managed via the Operation resource that is + // created. If an ImportDocuments operation is cancelled, it is possible + // that a subset of the data has already been imported to Cloud Firestore. + ImportDocuments(context.Context, *ImportDocumentsRequest) (*longrunningpb.Operation, error) + // Bulk deletes a subset of documents from Google Cloud Firestore. + // Documents created or updated after the underlying system starts to process + // the request will not be deleted. The bulk delete occurs in the background + // and its progress can be monitored and managed via the Operation resource + // that is created. + // + // For more details on bulk delete behavior, refer to: + // https://cloud.google.com/firestore/docs/manage-data/bulk-delete + BulkDeleteDocuments(context.Context, *BulkDeleteDocumentsRequest) (*longrunningpb.Operation, error) + // Create a database. + CreateDatabase(context.Context, *CreateDatabaseRequest) (*longrunningpb.Operation, error) + // Gets information about a database. + GetDatabase(context.Context, *GetDatabaseRequest) (*Database, error) + // List all the databases in the project. + ListDatabases(context.Context, *ListDatabasesRequest) (*ListDatabasesResponse, error) + // Updates a database. + UpdateDatabase(context.Context, *UpdateDatabaseRequest) (*longrunningpb.Operation, error) + // Deletes a database. + DeleteDatabase(context.Context, *DeleteDatabaseRequest) (*longrunningpb.Operation, error) + // Gets information about a backup. + GetBackup(context.Context, *GetBackupRequest) (*Backup, error) + // Lists all the backups. + ListBackups(context.Context, *ListBackupsRequest) (*ListBackupsResponse, error) + // Deletes a backup. + DeleteBackup(context.Context, *DeleteBackupRequest) (*empty.Empty, error) + // Creates a new database by restoring from an existing backup. + // + // The new database must be in the same cloud region or multi-region location + // as the existing backup. This behaves similar to + // [FirestoreAdmin.CreateDatabase][mockgcp.firestore.admin.v1.FirestoreAdmin.CreateDatabase] + // except instead of creating a new empty database, a new database is created + // with the database type, index configuration, and documents from an existing + // backup. + // + // The [long-running operation][google.longrunning.Operation] can be used to + // track the progress of the restore, with the Operation's + // [metadata][google.longrunning.Operation.metadata] field type being the + // [RestoreDatabaseMetadata][mockgcp.firestore.admin.v1.RestoreDatabaseMetadata]. + // The [response][google.longrunning.Operation.response] type is the + // [Database][mockgcp.firestore.admin.v1.Database] if the restore was + // successful. The new database is not readable or writeable until the LRO has + // completed. + RestoreDatabase(context.Context, *RestoreDatabaseRequest) (*longrunningpb.Operation, error) + // Creates a backup schedule on a database. + // At most two backup schedules can be configured on a database, one daily + // backup schedule and one weekly backup schedule. + CreateBackupSchedule(context.Context, *CreateBackupScheduleRequest) (*BackupSchedule, error) + // Gets information about a backup schedule. + GetBackupSchedule(context.Context, *GetBackupScheduleRequest) (*BackupSchedule, error) + // List backup schedules. + ListBackupSchedules(context.Context, *ListBackupSchedulesRequest) (*ListBackupSchedulesResponse, error) + // Updates a backup schedule. + UpdateBackupSchedule(context.Context, *UpdateBackupScheduleRequest) (*BackupSchedule, error) + // Deletes a backup schedule. + DeleteBackupSchedule(context.Context, *DeleteBackupScheduleRequest) (*empty.Empty, error) + mustEmbedUnimplementedFirestoreAdminServer() +} + +// UnimplementedFirestoreAdminServer must be embedded to have forward compatible implementations. +type UnimplementedFirestoreAdminServer struct { +} + +func (UnimplementedFirestoreAdminServer) CreateIndex(context.Context, *CreateIndexRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateIndex not implemented") +} +func (UnimplementedFirestoreAdminServer) ListIndexes(context.Context, *ListIndexesRequest) (*ListIndexesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListIndexes not implemented") +} +func (UnimplementedFirestoreAdminServer) GetIndex(context.Context, *GetIndexRequest) (*Index, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetIndex not implemented") +} +func (UnimplementedFirestoreAdminServer) DeleteIndex(context.Context, *DeleteIndexRequest) (*empty.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteIndex not implemented") +} +func (UnimplementedFirestoreAdminServer) GetField(context.Context, *GetFieldRequest) (*Field, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetField not implemented") +} +func (UnimplementedFirestoreAdminServer) UpdateField(context.Context, *UpdateFieldRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateField not implemented") +} +func (UnimplementedFirestoreAdminServer) ListFields(context.Context, *ListFieldsRequest) (*ListFieldsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFields not implemented") +} +func (UnimplementedFirestoreAdminServer) ExportDocuments(context.Context, *ExportDocumentsRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method ExportDocuments not implemented") +} +func (UnimplementedFirestoreAdminServer) ImportDocuments(context.Context, *ImportDocumentsRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method ImportDocuments not implemented") +} +func (UnimplementedFirestoreAdminServer) BulkDeleteDocuments(context.Context, *BulkDeleteDocumentsRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method BulkDeleteDocuments not implemented") +} +func (UnimplementedFirestoreAdminServer) CreateDatabase(context.Context, *CreateDatabaseRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateDatabase not implemented") +} +func (UnimplementedFirestoreAdminServer) GetDatabase(context.Context, *GetDatabaseRequest) (*Database, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDatabase not implemented") +} +func (UnimplementedFirestoreAdminServer) ListDatabases(context.Context, *ListDatabasesRequest) (*ListDatabasesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListDatabases not implemented") +} +func (UnimplementedFirestoreAdminServer) UpdateDatabase(context.Context, *UpdateDatabaseRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDatabase not implemented") +} +func (UnimplementedFirestoreAdminServer) DeleteDatabase(context.Context, *DeleteDatabaseRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteDatabase not implemented") +} +func (UnimplementedFirestoreAdminServer) GetBackup(context.Context, *GetBackupRequest) (*Backup, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBackup not implemented") +} +func (UnimplementedFirestoreAdminServer) ListBackups(context.Context, *ListBackupsRequest) (*ListBackupsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListBackups not implemented") +} +func (UnimplementedFirestoreAdminServer) DeleteBackup(context.Context, *DeleteBackupRequest) (*empty.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteBackup not implemented") +} +func (UnimplementedFirestoreAdminServer) RestoreDatabase(context.Context, *RestoreDatabaseRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method RestoreDatabase not implemented") +} +func (UnimplementedFirestoreAdminServer) CreateBackupSchedule(context.Context, *CreateBackupScheduleRequest) (*BackupSchedule, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateBackupSchedule not implemented") +} +func (UnimplementedFirestoreAdminServer) GetBackupSchedule(context.Context, *GetBackupScheduleRequest) (*BackupSchedule, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBackupSchedule not implemented") +} +func (UnimplementedFirestoreAdminServer) ListBackupSchedules(context.Context, *ListBackupSchedulesRequest) (*ListBackupSchedulesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListBackupSchedules not implemented") +} +func (UnimplementedFirestoreAdminServer) UpdateBackupSchedule(context.Context, *UpdateBackupScheduleRequest) (*BackupSchedule, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateBackupSchedule not implemented") +} +func (UnimplementedFirestoreAdminServer) DeleteBackupSchedule(context.Context, *DeleteBackupScheduleRequest) (*empty.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteBackupSchedule not implemented") +} +func (UnimplementedFirestoreAdminServer) mustEmbedUnimplementedFirestoreAdminServer() {} + +// UnsafeFirestoreAdminServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to FirestoreAdminServer will +// result in compilation errors. +type UnsafeFirestoreAdminServer interface { + mustEmbedUnimplementedFirestoreAdminServer() +} + +func RegisterFirestoreAdminServer(s grpc.ServiceRegistrar, srv FirestoreAdminServer) { + s.RegisterService(&FirestoreAdmin_ServiceDesc, srv) +} + +func _FirestoreAdmin_CreateIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).CreateIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/CreateIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).CreateIndex(ctx, req.(*CreateIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_ListIndexes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListIndexesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).ListIndexes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListIndexes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).ListIndexes(ctx, req.(*ListIndexesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_GetIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).GetIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).GetIndex(ctx, req.(*GetIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_DeleteIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).DeleteIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/DeleteIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).DeleteIndex(ctx, req.(*DeleteIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_GetField_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFieldRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).GetField(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetField", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).GetField(ctx, req.(*GetFieldRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_UpdateField_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateFieldRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).UpdateField(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/UpdateField", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).UpdateField(ctx, req.(*UpdateFieldRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_ListFields_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFieldsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).ListFields(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListFields", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).ListFields(ctx, req.(*ListFieldsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_ExportDocuments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ExportDocumentsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).ExportDocuments(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/ExportDocuments", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).ExportDocuments(ctx, req.(*ExportDocumentsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_ImportDocuments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ImportDocumentsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).ImportDocuments(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/ImportDocuments", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).ImportDocuments(ctx, req.(*ImportDocumentsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_BulkDeleteDocuments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BulkDeleteDocumentsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).BulkDeleteDocuments(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/BulkDeleteDocuments", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).BulkDeleteDocuments(ctx, req.(*BulkDeleteDocumentsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_CreateDatabase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateDatabaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).CreateDatabase(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/CreateDatabase", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).CreateDatabase(ctx, req.(*CreateDatabaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_GetDatabase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDatabaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).GetDatabase(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetDatabase", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).GetDatabase(ctx, req.(*GetDatabaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_ListDatabases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListDatabasesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).ListDatabases(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListDatabases", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).ListDatabases(ctx, req.(*ListDatabasesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_UpdateDatabase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateDatabaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).UpdateDatabase(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/UpdateDatabase", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).UpdateDatabase(ctx, req.(*UpdateDatabaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_DeleteDatabase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteDatabaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).DeleteDatabase(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/DeleteDatabase", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).DeleteDatabase(ctx, req.(*DeleteDatabaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_GetBackup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBackupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).GetBackup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetBackup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).GetBackup(ctx, req.(*GetBackupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_ListBackups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListBackupsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).ListBackups(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListBackups", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).ListBackups(ctx, req.(*ListBackupsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_DeleteBackup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteBackupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).DeleteBackup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/DeleteBackup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).DeleteBackup(ctx, req.(*DeleteBackupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_RestoreDatabase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RestoreDatabaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).RestoreDatabase(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/RestoreDatabase", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).RestoreDatabase(ctx, req.(*RestoreDatabaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_CreateBackupSchedule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateBackupScheduleRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).CreateBackupSchedule(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/CreateBackupSchedule", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).CreateBackupSchedule(ctx, req.(*CreateBackupScheduleRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_GetBackupSchedule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBackupScheduleRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).GetBackupSchedule(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/GetBackupSchedule", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).GetBackupSchedule(ctx, req.(*GetBackupScheduleRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_ListBackupSchedules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListBackupSchedulesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).ListBackupSchedules(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/ListBackupSchedules", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).ListBackupSchedules(ctx, req.(*ListBackupSchedulesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_UpdateBackupSchedule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateBackupScheduleRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).UpdateBackupSchedule(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/UpdateBackupSchedule", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).UpdateBackupSchedule(ctx, req.(*UpdateBackupScheduleRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_DeleteBackupSchedule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteBackupScheduleRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).DeleteBackupSchedule(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/mockgcp.firestore.admin.v1.FirestoreAdmin/DeleteBackupSchedule", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).DeleteBackupSchedule(ctx, req.(*DeleteBackupScheduleRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// FirestoreAdmin_ServiceDesc is the grpc.ServiceDesc for FirestoreAdmin service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var FirestoreAdmin_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "mockgcp.firestore.admin.v1.FirestoreAdmin", + HandlerType: (*FirestoreAdminServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateIndex", + Handler: _FirestoreAdmin_CreateIndex_Handler, + }, + { + MethodName: "ListIndexes", + Handler: _FirestoreAdmin_ListIndexes_Handler, + }, + { + MethodName: "GetIndex", + Handler: _FirestoreAdmin_GetIndex_Handler, + }, + { + MethodName: "DeleteIndex", + Handler: _FirestoreAdmin_DeleteIndex_Handler, + }, + { + MethodName: "GetField", + Handler: _FirestoreAdmin_GetField_Handler, + }, + { + MethodName: "UpdateField", + Handler: _FirestoreAdmin_UpdateField_Handler, + }, + { + MethodName: "ListFields", + Handler: _FirestoreAdmin_ListFields_Handler, + }, + { + MethodName: "ExportDocuments", + Handler: _FirestoreAdmin_ExportDocuments_Handler, + }, + { + MethodName: "ImportDocuments", + Handler: _FirestoreAdmin_ImportDocuments_Handler, + }, + { + MethodName: "BulkDeleteDocuments", + Handler: _FirestoreAdmin_BulkDeleteDocuments_Handler, + }, + { + MethodName: "CreateDatabase", + Handler: _FirestoreAdmin_CreateDatabase_Handler, + }, + { + MethodName: "GetDatabase", + Handler: _FirestoreAdmin_GetDatabase_Handler, + }, + { + MethodName: "ListDatabases", + Handler: _FirestoreAdmin_ListDatabases_Handler, + }, + { + MethodName: "UpdateDatabase", + Handler: _FirestoreAdmin_UpdateDatabase_Handler, + }, + { + MethodName: "DeleteDatabase", + Handler: _FirestoreAdmin_DeleteDatabase_Handler, + }, + { + MethodName: "GetBackup", + Handler: _FirestoreAdmin_GetBackup_Handler, + }, + { + MethodName: "ListBackups", + Handler: _FirestoreAdmin_ListBackups_Handler, + }, + { + MethodName: "DeleteBackup", + Handler: _FirestoreAdmin_DeleteBackup_Handler, + }, + { + MethodName: "RestoreDatabase", + Handler: _FirestoreAdmin_RestoreDatabase_Handler, + }, + { + MethodName: "CreateBackupSchedule", + Handler: _FirestoreAdmin_CreateBackupSchedule_Handler, + }, + { + MethodName: "GetBackupSchedule", + Handler: _FirestoreAdmin_GetBackupSchedule_Handler, + }, + { + MethodName: "ListBackupSchedules", + Handler: _FirestoreAdmin_ListBackupSchedules_Handler, + }, + { + MethodName: "UpdateBackupSchedule", + Handler: _FirestoreAdmin_UpdateBackupSchedule_Handler, + }, + { + MethodName: "DeleteBackupSchedule", + Handler: _FirestoreAdmin_DeleteBackupSchedule_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "mockgcp/firestore/admin/v1/firestore_admin.proto", +} diff --git a/mockgcp/generated/mockgcp/firestore/admin/v1/index.pb.go b/mockgcp/generated/mockgcp/firestore/admin/v1/index.pb.go new file mode 100644 index 0000000000..30b79ec707 --- /dev/null +++ b/mockgcp/generated/mockgcp/firestore/admin/v1/index.pb.go @@ -0,0 +1,901 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.12.4 +// source: mockgcp/firestore/admin/v1/index.proto + +package adminpb + +import ( + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Query Scope defines the scope at which a query is run. This is specified on +// a StructuredQuery's `from` field. +type Index_QueryScope int32 + +const ( + // The query scope is unspecified. Not a valid option. + Index_QUERY_SCOPE_UNSPECIFIED Index_QueryScope = 0 + // Indexes with a collection query scope specified allow queries + // against a collection that is the child of a specific document, specified + // at query time, and that has the collection ID specified by the index. + Index_COLLECTION Index_QueryScope = 1 + // Indexes with a collection group query scope specified allow queries + // against all collections that has the collection ID specified by the + // index. + Index_COLLECTION_GROUP Index_QueryScope = 2 + // Include all the collections's ancestor in the index. Only available for + // Datastore Mode databases. + Index_COLLECTION_RECURSIVE Index_QueryScope = 3 +) + +// Enum value maps for Index_QueryScope. +var ( + Index_QueryScope_name = map[int32]string{ + 0: "QUERY_SCOPE_UNSPECIFIED", + 1: "COLLECTION", + 2: "COLLECTION_GROUP", + 3: "COLLECTION_RECURSIVE", + } + Index_QueryScope_value = map[string]int32{ + "QUERY_SCOPE_UNSPECIFIED": 0, + "COLLECTION": 1, + "COLLECTION_GROUP": 2, + "COLLECTION_RECURSIVE": 3, + } +) + +func (x Index_QueryScope) Enum() *Index_QueryScope { + p := new(Index_QueryScope) + *p = x + return p +} + +func (x Index_QueryScope) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Index_QueryScope) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_firestore_admin_v1_index_proto_enumTypes[0].Descriptor() +} + +func (Index_QueryScope) Type() protoreflect.EnumType { + return &file_mockgcp_firestore_admin_v1_index_proto_enumTypes[0] +} + +func (x Index_QueryScope) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Index_QueryScope.Descriptor instead. +func (Index_QueryScope) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_index_proto_rawDescGZIP(), []int{0, 0} +} + +// API Scope defines the APIs (Firestore Native, or Firestore in +// Datastore Mode) that are supported for queries. +type Index_ApiScope int32 + +const ( + // The index can only be used by the Firestore Native query API. + // This is the default. + Index_ANY_API Index_ApiScope = 0 + // The index can only be used by the Firestore in Datastore Mode query API. + Index_DATASTORE_MODE_API Index_ApiScope = 1 +) + +// Enum value maps for Index_ApiScope. +var ( + Index_ApiScope_name = map[int32]string{ + 0: "ANY_API", + 1: "DATASTORE_MODE_API", + } + Index_ApiScope_value = map[string]int32{ + "ANY_API": 0, + "DATASTORE_MODE_API": 1, + } +) + +func (x Index_ApiScope) Enum() *Index_ApiScope { + p := new(Index_ApiScope) + *p = x + return p +} + +func (x Index_ApiScope) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Index_ApiScope) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_firestore_admin_v1_index_proto_enumTypes[1].Descriptor() +} + +func (Index_ApiScope) Type() protoreflect.EnumType { + return &file_mockgcp_firestore_admin_v1_index_proto_enumTypes[1] +} + +func (x Index_ApiScope) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Index_ApiScope.Descriptor instead. +func (Index_ApiScope) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_index_proto_rawDescGZIP(), []int{0, 1} +} + +// The state of an index. During index creation, an index will be in the +// `CREATING` state. If the index is created successfully, it will transition +// to the `READY` state. If the index creation encounters a problem, the index +// will transition to the `NEEDS_REPAIR` state. +type Index_State int32 + +const ( + // The state is unspecified. + Index_STATE_UNSPECIFIED Index_State = 0 + // The index is being created. + // There is an active long-running operation for the index. + // The index is updated when writing a document. + // Some index data may exist. + Index_CREATING Index_State = 1 + // The index is ready to be used. + // The index is updated when writing a document. + // The index is fully populated from all stored documents it applies to. + Index_READY Index_State = 2 + // The index was being created, but something went wrong. + // There is no active long-running operation for the index, + // and the most recently finished long-running operation failed. + // The index is not updated when writing a document. + // Some index data may exist. + // Use the google.longrunning.Operations API to determine why the operation + // that last attempted to create this index failed, then re-create the + // index. + Index_NEEDS_REPAIR Index_State = 3 +) + +// Enum value maps for Index_State. +var ( + Index_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "CREATING", + 2: "READY", + 3: "NEEDS_REPAIR", + } + Index_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "READY": 2, + "NEEDS_REPAIR": 3, + } +) + +func (x Index_State) Enum() *Index_State { + p := new(Index_State) + *p = x + return p +} + +func (x Index_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Index_State) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_firestore_admin_v1_index_proto_enumTypes[2].Descriptor() +} + +func (Index_State) Type() protoreflect.EnumType { + return &file_mockgcp_firestore_admin_v1_index_proto_enumTypes[2] +} + +func (x Index_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Index_State.Descriptor instead. +func (Index_State) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_index_proto_rawDescGZIP(), []int{0, 2} +} + +// The supported orderings. +type Index_IndexField_Order int32 + +const ( + // The ordering is unspecified. Not a valid option. + Index_IndexField_ORDER_UNSPECIFIED Index_IndexField_Order = 0 + // The field is ordered by ascending field value. + Index_IndexField_ASCENDING Index_IndexField_Order = 1 + // The field is ordered by descending field value. + Index_IndexField_DESCENDING Index_IndexField_Order = 2 +) + +// Enum value maps for Index_IndexField_Order. +var ( + Index_IndexField_Order_name = map[int32]string{ + 0: "ORDER_UNSPECIFIED", + 1: "ASCENDING", + 2: "DESCENDING", + } + Index_IndexField_Order_value = map[string]int32{ + "ORDER_UNSPECIFIED": 0, + "ASCENDING": 1, + "DESCENDING": 2, + } +) + +func (x Index_IndexField_Order) Enum() *Index_IndexField_Order { + p := new(Index_IndexField_Order) + *p = x + return p +} + +func (x Index_IndexField_Order) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Index_IndexField_Order) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_firestore_admin_v1_index_proto_enumTypes[3].Descriptor() +} + +func (Index_IndexField_Order) Type() protoreflect.EnumType { + return &file_mockgcp_firestore_admin_v1_index_proto_enumTypes[3] +} + +func (x Index_IndexField_Order) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Index_IndexField_Order.Descriptor instead. +func (Index_IndexField_Order) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_index_proto_rawDescGZIP(), []int{0, 0, 0} +} + +// The supported array value configurations. +type Index_IndexField_ArrayConfig int32 + +const ( + // The index does not support additional array queries. + Index_IndexField_ARRAY_CONFIG_UNSPECIFIED Index_IndexField_ArrayConfig = 0 + // The index supports array containment queries. + Index_IndexField_CONTAINS Index_IndexField_ArrayConfig = 1 +) + +// Enum value maps for Index_IndexField_ArrayConfig. +var ( + Index_IndexField_ArrayConfig_name = map[int32]string{ + 0: "ARRAY_CONFIG_UNSPECIFIED", + 1: "CONTAINS", + } + Index_IndexField_ArrayConfig_value = map[string]int32{ + "ARRAY_CONFIG_UNSPECIFIED": 0, + "CONTAINS": 1, + } +) + +func (x Index_IndexField_ArrayConfig) Enum() *Index_IndexField_ArrayConfig { + p := new(Index_IndexField_ArrayConfig) + *p = x + return p +} + +func (x Index_IndexField_ArrayConfig) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Index_IndexField_ArrayConfig) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_firestore_admin_v1_index_proto_enumTypes[4].Descriptor() +} + +func (Index_IndexField_ArrayConfig) Type() protoreflect.EnumType { + return &file_mockgcp_firestore_admin_v1_index_proto_enumTypes[4] +} + +func (x Index_IndexField_ArrayConfig) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Index_IndexField_ArrayConfig.Descriptor instead. +func (Index_IndexField_ArrayConfig) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_index_proto_rawDescGZIP(), []int{0, 0, 1} +} + +// Cloud Firestore indexes enable simple and complex queries against +// documents in a database. +type Index struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. A server defined name for this index. + // The form of this name for composite indexes will be: + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{composite_index_id}` + // For single field indexes, this field will be empty. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Indexes with a collection query scope specified allow queries + // against a collection that is the child of a specific document, specified at + // query time, and that has the same collection ID. + // + // Indexes with a collection group query scope specified allow queries against + // all collections descended from a specific document, specified at query + // time, and that have the same collection ID as this index. + QueryScope Index_QueryScope `protobuf:"varint,2,opt,name=query_scope,json=queryScope,proto3,enum=mockgcp.firestore.admin.v1.Index_QueryScope" json:"query_scope,omitempty"` + // The API scope supported by this index. + ApiScope Index_ApiScope `protobuf:"varint,5,opt,name=api_scope,json=apiScope,proto3,enum=mockgcp.firestore.admin.v1.Index_ApiScope" json:"api_scope,omitempty"` + // The fields supported by this index. + // + // For composite indexes, this requires a minimum of 2 and a maximum of 100 + // fields. The last field entry is always for the field path `__name__`. If, + // on creation, `__name__` was not specified as the last field, it will be + // added automatically with the same direction as that of the last field + // defined. If the final field in a composite index is not directional, the + // `__name__` will be ordered ASCENDING (unless explicitly specified). + // + // For single field indexes, this will always be exactly one entry with a + // field path equal to the field path of the associated field. + Fields []*Index_IndexField `protobuf:"bytes,3,rep,name=fields,proto3" json:"fields,omitempty"` + // Output only. The serving state of the index. + State Index_State `protobuf:"varint,4,opt,name=state,proto3,enum=mockgcp.firestore.admin.v1.Index_State" json:"state,omitempty"` +} + +func (x *Index) Reset() { + *x = Index{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_index_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Index) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Index) ProtoMessage() {} + +func (x *Index) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_index_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Index.ProtoReflect.Descriptor instead. +func (*Index) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_index_proto_rawDescGZIP(), []int{0} +} + +func (x *Index) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Index) GetQueryScope() Index_QueryScope { + if x != nil { + return x.QueryScope + } + return Index_QUERY_SCOPE_UNSPECIFIED +} + +func (x *Index) GetApiScope() Index_ApiScope { + if x != nil { + return x.ApiScope + } + return Index_ANY_API +} + +func (x *Index) GetFields() []*Index_IndexField { + if x != nil { + return x.Fields + } + return nil +} + +func (x *Index) GetState() Index_State { + if x != nil { + return x.State + } + return Index_STATE_UNSPECIFIED +} + +// A field in an index. +// The field_path describes which field is indexed, the value_mode describes +// how the field value is indexed. +type Index_IndexField struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Can be __name__. + // For single field indexes, this must match the name of the field or may + // be omitted. + FieldPath string `protobuf:"bytes,1,opt,name=field_path,json=fieldPath,proto3" json:"field_path,omitempty"` + // How the field value is indexed. + // + // Types that are assignable to ValueMode: + // + // *Index_IndexField_Order_ + // *Index_IndexField_ArrayConfig_ + // *Index_IndexField_VectorConfig_ + ValueMode isIndex_IndexField_ValueMode `protobuf_oneof:"value_mode"` +} + +func (x *Index_IndexField) Reset() { + *x = Index_IndexField{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_index_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Index_IndexField) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Index_IndexField) ProtoMessage() {} + +func (x *Index_IndexField) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_index_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Index_IndexField.ProtoReflect.Descriptor instead. +func (*Index_IndexField) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_index_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *Index_IndexField) GetFieldPath() string { + if x != nil { + return x.FieldPath + } + return "" +} + +func (m *Index_IndexField) GetValueMode() isIndex_IndexField_ValueMode { + if m != nil { + return m.ValueMode + } + return nil +} + +func (x *Index_IndexField) GetOrder() Index_IndexField_Order { + if x, ok := x.GetValueMode().(*Index_IndexField_Order_); ok { + return x.Order + } + return Index_IndexField_ORDER_UNSPECIFIED +} + +func (x *Index_IndexField) GetArrayConfig() Index_IndexField_ArrayConfig { + if x, ok := x.GetValueMode().(*Index_IndexField_ArrayConfig_); ok { + return x.ArrayConfig + } + return Index_IndexField_ARRAY_CONFIG_UNSPECIFIED +} + +func (x *Index_IndexField) GetVectorConfig() *Index_IndexField_VectorConfig { + if x, ok := x.GetValueMode().(*Index_IndexField_VectorConfig_); ok { + return x.VectorConfig + } + return nil +} + +type isIndex_IndexField_ValueMode interface { + isIndex_IndexField_ValueMode() +} + +type Index_IndexField_Order_ struct { + // Indicates that this field supports ordering by the specified order or + // comparing using =, !=, <, <=, >, >=. + Order Index_IndexField_Order `protobuf:"varint,2,opt,name=order,proto3,enum=mockgcp.firestore.admin.v1.Index_IndexField_Order,oneof"` +} + +type Index_IndexField_ArrayConfig_ struct { + // Indicates that this field supports operations on `array_value`s. + ArrayConfig Index_IndexField_ArrayConfig `protobuf:"varint,3,opt,name=array_config,json=arrayConfig,proto3,enum=mockgcp.firestore.admin.v1.Index_IndexField_ArrayConfig,oneof"` +} + +type Index_IndexField_VectorConfig_ struct { + // Indicates that this field supports nearest neighbor and distance + // operations on vector. + VectorConfig *Index_IndexField_VectorConfig `protobuf:"bytes,4,opt,name=vector_config,json=vectorConfig,proto3,oneof"` +} + +func (*Index_IndexField_Order_) isIndex_IndexField_ValueMode() {} + +func (*Index_IndexField_ArrayConfig_) isIndex_IndexField_ValueMode() {} + +func (*Index_IndexField_VectorConfig_) isIndex_IndexField_ValueMode() {} + +// The index configuration to support vector search operations +type Index_IndexField_VectorConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The vector dimension this configuration applies to. + // + // The resulting index will only include vectors of this dimension, and + // can be used for vector search with the same dimension. + Dimension int32 `protobuf:"varint,1,opt,name=dimension,proto3" json:"dimension,omitempty"` + // The type of index used. + // + // Types that are assignable to Type: + // + // *Index_IndexField_VectorConfig_Flat + Type isIndex_IndexField_VectorConfig_Type `protobuf_oneof:"type"` +} + +func (x *Index_IndexField_VectorConfig) Reset() { + *x = Index_IndexField_VectorConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_index_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Index_IndexField_VectorConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Index_IndexField_VectorConfig) ProtoMessage() {} + +func (x *Index_IndexField_VectorConfig) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_index_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Index_IndexField_VectorConfig.ProtoReflect.Descriptor instead. +func (*Index_IndexField_VectorConfig) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_index_proto_rawDescGZIP(), []int{0, 0, 0} +} + +func (x *Index_IndexField_VectorConfig) GetDimension() int32 { + if x != nil { + return x.Dimension + } + return 0 +} + +func (m *Index_IndexField_VectorConfig) GetType() isIndex_IndexField_VectorConfig_Type { + if m != nil { + return m.Type + } + return nil +} + +func (x *Index_IndexField_VectorConfig) GetFlat() *Index_IndexField_VectorConfig_FlatIndex { + if x, ok := x.GetType().(*Index_IndexField_VectorConfig_Flat); ok { + return x.Flat + } + return nil +} + +type isIndex_IndexField_VectorConfig_Type interface { + isIndex_IndexField_VectorConfig_Type() +} + +type Index_IndexField_VectorConfig_Flat struct { + // Indicates the vector index is a flat index. + Flat *Index_IndexField_VectorConfig_FlatIndex `protobuf:"bytes,2,opt,name=flat,proto3,oneof"` +} + +func (*Index_IndexField_VectorConfig_Flat) isIndex_IndexField_VectorConfig_Type() {} + +// An index that stores vectors in a flat data structure, and supports +// exhaustive search. +type Index_IndexField_VectorConfig_FlatIndex struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Index_IndexField_VectorConfig_FlatIndex) Reset() { + *x = Index_IndexField_VectorConfig_FlatIndex{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_index_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Index_IndexField_VectorConfig_FlatIndex) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Index_IndexField_VectorConfig_FlatIndex) ProtoMessage() {} + +func (x *Index_IndexField_VectorConfig_FlatIndex) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_index_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Index_IndexField_VectorConfig_FlatIndex.ProtoReflect.Descriptor instead. +func (*Index_IndexField_VectorConfig_FlatIndex) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_index_proto_rawDescGZIP(), []int{0, 0, 0, 0} +} + +var File_mockgcp_firestore_admin_v1_index_proto protoreflect.FileDescriptor + +var file_mockgcp_firestore_admin_v1_index_proto_rawDesc = []byte{ + 0x0a, 0x26, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x82, 0x0a, 0x0a, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4d, + 0x0a, 0x0b, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, + 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x63, 0x6f, 0x70, + 0x65, 0x52, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x47, 0x0a, + 0x09, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2a, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x2e, 0x41, 0x70, 0x69, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x08, 0x61, 0x70, + 0x69, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, + 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x3d, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6d, 0x6f, + 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0xe4, 0x04, 0x0a, 0x0a, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x05, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, + 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x5d, 0x0a, 0x0c, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6d, 0x6f, + 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x72, 0x72, 0x61, 0x79, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x60, 0x0a, 0x0d, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6d, 0x6f, + 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0c, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0xa1, 0x01, 0x0a, 0x0c, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x09, 0x64, 0x69, 0x6d, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x09, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x04, 0x66, 0x6c, + 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, + 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x46, 0x6c, 0x61, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x48, 0x00, 0x52, + 0x04, 0x66, 0x6c, 0x61, 0x74, 0x1a, 0x0b, 0x0a, 0x09, 0x46, 0x6c, 0x61, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3d, 0x0a, 0x05, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x53, + 0x43, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x45, 0x53, + 0x43, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x22, 0x39, 0x0a, 0x0b, 0x41, 0x72, 0x72, + 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x52, 0x52, 0x41, + 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, + 0x4e, 0x53, 0x10, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x22, 0x69, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x63, 0x6f, 0x70, 0x65, + 0x12, 0x1b, 0x0a, 0x17, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x53, 0x43, 0x4f, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, + 0x0a, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x14, 0x0a, + 0x10, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x52, 0x45, 0x43, 0x55, 0x52, 0x53, 0x49, 0x56, 0x45, 0x10, 0x03, 0x22, 0x2f, 0x0a, + 0x08, 0x41, 0x70, 0x69, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x4e, 0x59, + 0x5f, 0x41, 0x50, 0x49, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x41, 0x54, 0x41, 0x53, 0x54, + 0x4f, 0x52, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x10, 0x01, 0x22, 0x49, + 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, + 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, + 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x45, 0x45, 0x44, 0x53, + 0x5f, 0x52, 0x45, 0x50, 0x41, 0x49, 0x52, 0x10, 0x03, 0x3a, 0x7a, 0xea, 0x41, 0x77, 0x0a, 0x1e, + 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x55, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x64, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x2f, 0x7b, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x7d, 0x42, 0xda, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x6f, + 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x66, 0x69, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x70, 0x62, 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x70, + 0x62, 0xa2, 0x02, 0x04, 0x47, 0x43, 0x46, 0x53, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x23, 0x47, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x46, 0x69, + 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x3a, 0x3a, + 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_mockgcp_firestore_admin_v1_index_proto_rawDescOnce sync.Once + file_mockgcp_firestore_admin_v1_index_proto_rawDescData = file_mockgcp_firestore_admin_v1_index_proto_rawDesc +) + +func file_mockgcp_firestore_admin_v1_index_proto_rawDescGZIP() []byte { + file_mockgcp_firestore_admin_v1_index_proto_rawDescOnce.Do(func() { + file_mockgcp_firestore_admin_v1_index_proto_rawDescData = protoimpl.X.CompressGZIP(file_mockgcp_firestore_admin_v1_index_proto_rawDescData) + }) + return file_mockgcp_firestore_admin_v1_index_proto_rawDescData +} + +var file_mockgcp_firestore_admin_v1_index_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_mockgcp_firestore_admin_v1_index_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_mockgcp_firestore_admin_v1_index_proto_goTypes = []interface{}{ + (Index_QueryScope)(0), // 0: mockgcp.firestore.admin.v1.Index.QueryScope + (Index_ApiScope)(0), // 1: mockgcp.firestore.admin.v1.Index.ApiScope + (Index_State)(0), // 2: mockgcp.firestore.admin.v1.Index.State + (Index_IndexField_Order)(0), // 3: mockgcp.firestore.admin.v1.Index.IndexField.Order + (Index_IndexField_ArrayConfig)(0), // 4: mockgcp.firestore.admin.v1.Index.IndexField.ArrayConfig + (*Index)(nil), // 5: mockgcp.firestore.admin.v1.Index + (*Index_IndexField)(nil), // 6: mockgcp.firestore.admin.v1.Index.IndexField + (*Index_IndexField_VectorConfig)(nil), // 7: mockgcp.firestore.admin.v1.Index.IndexField.VectorConfig + (*Index_IndexField_VectorConfig_FlatIndex)(nil), // 8: mockgcp.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex +} +var file_mockgcp_firestore_admin_v1_index_proto_depIdxs = []int32{ + 0, // 0: mockgcp.firestore.admin.v1.Index.query_scope:type_name -> mockgcp.firestore.admin.v1.Index.QueryScope + 1, // 1: mockgcp.firestore.admin.v1.Index.api_scope:type_name -> mockgcp.firestore.admin.v1.Index.ApiScope + 6, // 2: mockgcp.firestore.admin.v1.Index.fields:type_name -> mockgcp.firestore.admin.v1.Index.IndexField + 2, // 3: mockgcp.firestore.admin.v1.Index.state:type_name -> mockgcp.firestore.admin.v1.Index.State + 3, // 4: mockgcp.firestore.admin.v1.Index.IndexField.order:type_name -> mockgcp.firestore.admin.v1.Index.IndexField.Order + 4, // 5: mockgcp.firestore.admin.v1.Index.IndexField.array_config:type_name -> mockgcp.firestore.admin.v1.Index.IndexField.ArrayConfig + 7, // 6: mockgcp.firestore.admin.v1.Index.IndexField.vector_config:type_name -> mockgcp.firestore.admin.v1.Index.IndexField.VectorConfig + 8, // 7: mockgcp.firestore.admin.v1.Index.IndexField.VectorConfig.flat:type_name -> mockgcp.firestore.admin.v1.Index.IndexField.VectorConfig.FlatIndex + 8, // [8:8] is the sub-list for method output_type + 8, // [8:8] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name +} + +func init() { file_mockgcp_firestore_admin_v1_index_proto_init() } +func file_mockgcp_firestore_admin_v1_index_proto_init() { + if File_mockgcp_firestore_admin_v1_index_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_mockgcp_firestore_admin_v1_index_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Index); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_index_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Index_IndexField); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_index_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Index_IndexField_VectorConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_index_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Index_IndexField_VectorConfig_FlatIndex); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_mockgcp_firestore_admin_v1_index_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*Index_IndexField_Order_)(nil), + (*Index_IndexField_ArrayConfig_)(nil), + (*Index_IndexField_VectorConfig_)(nil), + } + file_mockgcp_firestore_admin_v1_index_proto_msgTypes[2].OneofWrappers = []interface{}{ + (*Index_IndexField_VectorConfig_Flat)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_mockgcp_firestore_admin_v1_index_proto_rawDesc, + NumEnums: 5, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_mockgcp_firestore_admin_v1_index_proto_goTypes, + DependencyIndexes: file_mockgcp_firestore_admin_v1_index_proto_depIdxs, + EnumInfos: file_mockgcp_firestore_admin_v1_index_proto_enumTypes, + MessageInfos: file_mockgcp_firestore_admin_v1_index_proto_msgTypes, + }.Build() + File_mockgcp_firestore_admin_v1_index_proto = out.File + file_mockgcp_firestore_admin_v1_index_proto_rawDesc = nil + file_mockgcp_firestore_admin_v1_index_proto_goTypes = nil + file_mockgcp_firestore_admin_v1_index_proto_depIdxs = nil +} diff --git a/mockgcp/generated/mockgcp/firestore/admin/v1/location.pb.go b/mockgcp/generated/mockgcp/firestore/admin/v1/location.pb.go new file mode 100644 index 0000000000..c6a62c9587 --- /dev/null +++ b/mockgcp/generated/mockgcp/firestore/admin/v1/location.pb.go @@ -0,0 +1,164 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.12.4 +// source: mockgcp/firestore/admin/v1/location.proto + +package adminpb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The metadata message for +// [mockgcp.cloud.location.Location.metadata][mockgcp.cloud.location.Location.metadata]. +type LocationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *LocationMetadata) Reset() { + *x = LocationMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_location_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LocationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LocationMetadata) ProtoMessage() {} + +func (x *LocationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_location_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LocationMetadata.ProtoReflect.Descriptor instead. +func (*LocationMetadata) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_location_proto_rawDescGZIP(), []int{0} +} + +var File_mockgcp_firestore_admin_v1_location_proto protoreflect.FileDescriptor + +var file_mockgcp_firestore_admin_v1_location_proto_rawDesc = []byte{ + 0x0a, 0x29, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x22, 0x12, 0x0a, 0x10, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0xdd, 0x01, 0x0a, 0x1e, + 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x0d, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x39, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x61, + 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x70, 0x62, 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x70, 0x62, 0xa2, 0x02, 0x04, 0x47, 0x43, 0x46, + 0x53, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x5c, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5c, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x23, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_mockgcp_firestore_admin_v1_location_proto_rawDescOnce sync.Once + file_mockgcp_firestore_admin_v1_location_proto_rawDescData = file_mockgcp_firestore_admin_v1_location_proto_rawDesc +) + +func file_mockgcp_firestore_admin_v1_location_proto_rawDescGZIP() []byte { + file_mockgcp_firestore_admin_v1_location_proto_rawDescOnce.Do(func() { + file_mockgcp_firestore_admin_v1_location_proto_rawDescData = protoimpl.X.CompressGZIP(file_mockgcp_firestore_admin_v1_location_proto_rawDescData) + }) + return file_mockgcp_firestore_admin_v1_location_proto_rawDescData +} + +var file_mockgcp_firestore_admin_v1_location_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_mockgcp_firestore_admin_v1_location_proto_goTypes = []interface{}{ + (*LocationMetadata)(nil), // 0: mockgcp.firestore.admin.v1.LocationMetadata +} +var file_mockgcp_firestore_admin_v1_location_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_mockgcp_firestore_admin_v1_location_proto_init() } +func file_mockgcp_firestore_admin_v1_location_proto_init() { + if File_mockgcp_firestore_admin_v1_location_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_mockgcp_firestore_admin_v1_location_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LocationMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_mockgcp_firestore_admin_v1_location_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_mockgcp_firestore_admin_v1_location_proto_goTypes, + DependencyIndexes: file_mockgcp_firestore_admin_v1_location_proto_depIdxs, + MessageInfos: file_mockgcp_firestore_admin_v1_location_proto_msgTypes, + }.Build() + File_mockgcp_firestore_admin_v1_location_proto = out.File + file_mockgcp_firestore_admin_v1_location_proto_rawDesc = nil + file_mockgcp_firestore_admin_v1_location_proto_goTypes = nil + file_mockgcp_firestore_admin_v1_location_proto_depIdxs = nil +} diff --git a/mockgcp/generated/mockgcp/firestore/admin/v1/operation.pb.go b/mockgcp/generated/mockgcp/firestore/admin/v1/operation.pb.go new file mode 100644 index 0000000000..8df04e54c6 --- /dev/null +++ b/mockgcp/generated/mockgcp/firestore/admin/v1/operation.pb.go @@ -0,0 +1,1602 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.12.4 +// source: mockgcp/firestore/admin/v1/operation.proto + +package adminpb + +import ( + timestamp "github.com/golang/protobuf/ptypes/timestamp" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Describes the state of the operation. +type OperationState int32 + +const ( + // Unspecified. + OperationState_OPERATION_STATE_UNSPECIFIED OperationState = 0 + // Request is being prepared for processing. + OperationState_INITIALIZING OperationState = 1 + // Request is actively being processed. + OperationState_PROCESSING OperationState = 2 + // Request is in the process of being cancelled after user called + // google.longrunning.Operations.CancelOperation on the operation. + OperationState_CANCELLING OperationState = 3 + // Request has been processed and is in its finalization stage. + OperationState_FINALIZING OperationState = 4 + // Request has completed successfully. + OperationState_SUCCESSFUL OperationState = 5 + // Request has finished being processed, but encountered an error. + OperationState_FAILED OperationState = 6 + // Request has finished being cancelled after user called + // google.longrunning.Operations.CancelOperation. + OperationState_CANCELLED OperationState = 7 +) + +// Enum value maps for OperationState. +var ( + OperationState_name = map[int32]string{ + 0: "OPERATION_STATE_UNSPECIFIED", + 1: "INITIALIZING", + 2: "PROCESSING", + 3: "CANCELLING", + 4: "FINALIZING", + 5: "SUCCESSFUL", + 6: "FAILED", + 7: "CANCELLED", + } + OperationState_value = map[string]int32{ + "OPERATION_STATE_UNSPECIFIED": 0, + "INITIALIZING": 1, + "PROCESSING": 2, + "CANCELLING": 3, + "FINALIZING": 4, + "SUCCESSFUL": 5, + "FAILED": 6, + "CANCELLED": 7, + } +) + +func (x OperationState) Enum() *OperationState { + p := new(OperationState) + *p = x + return p +} + +func (x OperationState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OperationState) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_firestore_admin_v1_operation_proto_enumTypes[0].Descriptor() +} + +func (OperationState) Type() protoreflect.EnumType { + return &file_mockgcp_firestore_admin_v1_operation_proto_enumTypes[0] +} + +func (x OperationState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OperationState.Descriptor instead. +func (OperationState) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_operation_proto_rawDescGZIP(), []int{0} +} + +// Specifies how the index is changing. +type FieldOperationMetadata_IndexConfigDelta_ChangeType int32 + +const ( + // The type of change is not specified or known. + FieldOperationMetadata_IndexConfigDelta_CHANGE_TYPE_UNSPECIFIED FieldOperationMetadata_IndexConfigDelta_ChangeType = 0 + // The single field index is being added. + FieldOperationMetadata_IndexConfigDelta_ADD FieldOperationMetadata_IndexConfigDelta_ChangeType = 1 + // The single field index is being removed. + FieldOperationMetadata_IndexConfigDelta_REMOVE FieldOperationMetadata_IndexConfigDelta_ChangeType = 2 +) + +// Enum value maps for FieldOperationMetadata_IndexConfigDelta_ChangeType. +var ( + FieldOperationMetadata_IndexConfigDelta_ChangeType_name = map[int32]string{ + 0: "CHANGE_TYPE_UNSPECIFIED", + 1: "ADD", + 2: "REMOVE", + } + FieldOperationMetadata_IndexConfigDelta_ChangeType_value = map[string]int32{ + "CHANGE_TYPE_UNSPECIFIED": 0, + "ADD": 1, + "REMOVE": 2, + } +) + +func (x FieldOperationMetadata_IndexConfigDelta_ChangeType) Enum() *FieldOperationMetadata_IndexConfigDelta_ChangeType { + p := new(FieldOperationMetadata_IndexConfigDelta_ChangeType) + *p = x + return p +} + +func (x FieldOperationMetadata_IndexConfigDelta_ChangeType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FieldOperationMetadata_IndexConfigDelta_ChangeType) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_firestore_admin_v1_operation_proto_enumTypes[1].Descriptor() +} + +func (FieldOperationMetadata_IndexConfigDelta_ChangeType) Type() protoreflect.EnumType { + return &file_mockgcp_firestore_admin_v1_operation_proto_enumTypes[1] +} + +func (x FieldOperationMetadata_IndexConfigDelta_ChangeType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FieldOperationMetadata_IndexConfigDelta_ChangeType.Descriptor instead. +func (FieldOperationMetadata_IndexConfigDelta_ChangeType) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_operation_proto_rawDescGZIP(), []int{1, 0, 0} +} + +// Specifies how the TTL config is changing. +type FieldOperationMetadata_TtlConfigDelta_ChangeType int32 + +const ( + // The type of change is not specified or known. + FieldOperationMetadata_TtlConfigDelta_CHANGE_TYPE_UNSPECIFIED FieldOperationMetadata_TtlConfigDelta_ChangeType = 0 + // The TTL config is being added. + FieldOperationMetadata_TtlConfigDelta_ADD FieldOperationMetadata_TtlConfigDelta_ChangeType = 1 + // The TTL config is being removed. + FieldOperationMetadata_TtlConfigDelta_REMOVE FieldOperationMetadata_TtlConfigDelta_ChangeType = 2 +) + +// Enum value maps for FieldOperationMetadata_TtlConfigDelta_ChangeType. +var ( + FieldOperationMetadata_TtlConfigDelta_ChangeType_name = map[int32]string{ + 0: "CHANGE_TYPE_UNSPECIFIED", + 1: "ADD", + 2: "REMOVE", + } + FieldOperationMetadata_TtlConfigDelta_ChangeType_value = map[string]int32{ + "CHANGE_TYPE_UNSPECIFIED": 0, + "ADD": 1, + "REMOVE": 2, + } +) + +func (x FieldOperationMetadata_TtlConfigDelta_ChangeType) Enum() *FieldOperationMetadata_TtlConfigDelta_ChangeType { + p := new(FieldOperationMetadata_TtlConfigDelta_ChangeType) + *p = x + return p +} + +func (x FieldOperationMetadata_TtlConfigDelta_ChangeType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FieldOperationMetadata_TtlConfigDelta_ChangeType) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_firestore_admin_v1_operation_proto_enumTypes[2].Descriptor() +} + +func (FieldOperationMetadata_TtlConfigDelta_ChangeType) Type() protoreflect.EnumType { + return &file_mockgcp_firestore_admin_v1_operation_proto_enumTypes[2] +} + +func (x FieldOperationMetadata_TtlConfigDelta_ChangeType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FieldOperationMetadata_TtlConfigDelta_ChangeType.Descriptor instead. +func (FieldOperationMetadata_TtlConfigDelta_ChangeType) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_operation_proto_rawDescGZIP(), []int{1, 1, 0} +} + +// Metadata for [google.longrunning.Operation][google.longrunning.Operation] +// results from +// [FirestoreAdmin.CreateIndex][mockgcp.firestore.admin.v1.FirestoreAdmin.CreateIndex]. +type IndexOperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The time this operation started. + StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The time this operation completed. Will be unset if operation still in + // progress. + EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // The index resource that this operation is acting on. For example: + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}` + Index string `protobuf:"bytes,3,opt,name=index,proto3" json:"index,omitempty"` + // The state of the operation. + State OperationState `protobuf:"varint,4,opt,name=state,proto3,enum=mockgcp.firestore.admin.v1.OperationState" json:"state,omitempty"` + // The progress, in documents, of this operation. + ProgressDocuments *Progress `protobuf:"bytes,5,opt,name=progress_documents,json=progressDocuments,proto3" json:"progress_documents,omitempty"` + // The progress, in bytes, of this operation. + ProgressBytes *Progress `protobuf:"bytes,6,opt,name=progress_bytes,json=progressBytes,proto3" json:"progress_bytes,omitempty"` +} + +func (x *IndexOperationMetadata) Reset() { + *x = IndexOperationMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IndexOperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IndexOperationMetadata) ProtoMessage() {} + +func (x *IndexOperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IndexOperationMetadata.ProtoReflect.Descriptor instead. +func (*IndexOperationMetadata) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_operation_proto_rawDescGZIP(), []int{0} +} + +func (x *IndexOperationMetadata) GetStartTime() *timestamp.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *IndexOperationMetadata) GetEndTime() *timestamp.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +func (x *IndexOperationMetadata) GetIndex() string { + if x != nil { + return x.Index + } + return "" +} + +func (x *IndexOperationMetadata) GetState() OperationState { + if x != nil { + return x.State + } + return OperationState_OPERATION_STATE_UNSPECIFIED +} + +func (x *IndexOperationMetadata) GetProgressDocuments() *Progress { + if x != nil { + return x.ProgressDocuments + } + return nil +} + +func (x *IndexOperationMetadata) GetProgressBytes() *Progress { + if x != nil { + return x.ProgressBytes + } + return nil +} + +// Metadata for [google.longrunning.Operation][google.longrunning.Operation] +// results from +// [FirestoreAdmin.UpdateField][mockgcp.firestore.admin.v1.FirestoreAdmin.UpdateField]. +type FieldOperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The time this operation started. + StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The time this operation completed. Will be unset if operation still in + // progress. + EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // The field resource that this operation is acting on. For example: + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_path}` + Field string `protobuf:"bytes,3,opt,name=field,proto3" json:"field,omitempty"` + // A list of + // [IndexConfigDelta][mockgcp.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta], + // which describe the intent of this operation. + IndexConfigDeltas []*FieldOperationMetadata_IndexConfigDelta `protobuf:"bytes,4,rep,name=index_config_deltas,json=indexConfigDeltas,proto3" json:"index_config_deltas,omitempty"` + // The state of the operation. + State OperationState `protobuf:"varint,5,opt,name=state,proto3,enum=mockgcp.firestore.admin.v1.OperationState" json:"state,omitempty"` + // The progress, in documents, of this operation. + ProgressDocuments *Progress `protobuf:"bytes,6,opt,name=progress_documents,json=progressDocuments,proto3" json:"progress_documents,omitempty"` + // The progress, in bytes, of this operation. + ProgressBytes *Progress `protobuf:"bytes,7,opt,name=progress_bytes,json=progressBytes,proto3" json:"progress_bytes,omitempty"` + // Describes the deltas of TTL configuration. + TtlConfigDelta *FieldOperationMetadata_TtlConfigDelta `protobuf:"bytes,8,opt,name=ttl_config_delta,json=ttlConfigDelta,proto3" json:"ttl_config_delta,omitempty"` +} + +func (x *FieldOperationMetadata) Reset() { + *x = FieldOperationMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FieldOperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FieldOperationMetadata) ProtoMessage() {} + +func (x *FieldOperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FieldOperationMetadata.ProtoReflect.Descriptor instead. +func (*FieldOperationMetadata) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_operation_proto_rawDescGZIP(), []int{1} +} + +func (x *FieldOperationMetadata) GetStartTime() *timestamp.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *FieldOperationMetadata) GetEndTime() *timestamp.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +func (x *FieldOperationMetadata) GetField() string { + if x != nil { + return x.Field + } + return "" +} + +func (x *FieldOperationMetadata) GetIndexConfigDeltas() []*FieldOperationMetadata_IndexConfigDelta { + if x != nil { + return x.IndexConfigDeltas + } + return nil +} + +func (x *FieldOperationMetadata) GetState() OperationState { + if x != nil { + return x.State + } + return OperationState_OPERATION_STATE_UNSPECIFIED +} + +func (x *FieldOperationMetadata) GetProgressDocuments() *Progress { + if x != nil { + return x.ProgressDocuments + } + return nil +} + +func (x *FieldOperationMetadata) GetProgressBytes() *Progress { + if x != nil { + return x.ProgressBytes + } + return nil +} + +func (x *FieldOperationMetadata) GetTtlConfigDelta() *FieldOperationMetadata_TtlConfigDelta { + if x != nil { + return x.TtlConfigDelta + } + return nil +} + +// Metadata for [google.longrunning.Operation][google.longrunning.Operation] +// results from +// [FirestoreAdmin.ExportDocuments][mockgcp.firestore.admin.v1.FirestoreAdmin.ExportDocuments]. +type ExportDocumentsMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The time this operation started. + StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The time this operation completed. Will be unset if operation still in + // progress. + EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // The state of the export operation. + OperationState OperationState `protobuf:"varint,3,opt,name=operation_state,json=operationState,proto3,enum=mockgcp.firestore.admin.v1.OperationState" json:"operation_state,omitempty"` + // The progress, in documents, of this operation. + ProgressDocuments *Progress `protobuf:"bytes,4,opt,name=progress_documents,json=progressDocuments,proto3" json:"progress_documents,omitempty"` + // The progress, in bytes, of this operation. + ProgressBytes *Progress `protobuf:"bytes,5,opt,name=progress_bytes,json=progressBytes,proto3" json:"progress_bytes,omitempty"` + // Which collection IDs are being exported. + CollectionIds []string `protobuf:"bytes,6,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"` + // Where the documents are being exported to. + OutputUriPrefix string `protobuf:"bytes,7,opt,name=output_uri_prefix,json=outputUriPrefix,proto3" json:"output_uri_prefix,omitempty"` + // Which namespace IDs are being exported. + NamespaceIds []string `protobuf:"bytes,8,rep,name=namespace_ids,json=namespaceIds,proto3" json:"namespace_ids,omitempty"` + // The timestamp that corresponds to the version of the database that is being + // exported. If unspecified, there are no guarantees about the consistency of + // the documents being exported. + SnapshotTime *timestamp.Timestamp `protobuf:"bytes,9,opt,name=snapshot_time,json=snapshotTime,proto3" json:"snapshot_time,omitempty"` +} + +func (x *ExportDocumentsMetadata) Reset() { + *x = ExportDocumentsMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExportDocumentsMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExportDocumentsMetadata) ProtoMessage() {} + +func (x *ExportDocumentsMetadata) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExportDocumentsMetadata.ProtoReflect.Descriptor instead. +func (*ExportDocumentsMetadata) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_operation_proto_rawDescGZIP(), []int{2} +} + +func (x *ExportDocumentsMetadata) GetStartTime() *timestamp.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *ExportDocumentsMetadata) GetEndTime() *timestamp.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +func (x *ExportDocumentsMetadata) GetOperationState() OperationState { + if x != nil { + return x.OperationState + } + return OperationState_OPERATION_STATE_UNSPECIFIED +} + +func (x *ExportDocumentsMetadata) GetProgressDocuments() *Progress { + if x != nil { + return x.ProgressDocuments + } + return nil +} + +func (x *ExportDocumentsMetadata) GetProgressBytes() *Progress { + if x != nil { + return x.ProgressBytes + } + return nil +} + +func (x *ExportDocumentsMetadata) GetCollectionIds() []string { + if x != nil { + return x.CollectionIds + } + return nil +} + +func (x *ExportDocumentsMetadata) GetOutputUriPrefix() string { + if x != nil { + return x.OutputUriPrefix + } + return "" +} + +func (x *ExportDocumentsMetadata) GetNamespaceIds() []string { + if x != nil { + return x.NamespaceIds + } + return nil +} + +func (x *ExportDocumentsMetadata) GetSnapshotTime() *timestamp.Timestamp { + if x != nil { + return x.SnapshotTime + } + return nil +} + +// Metadata for [google.longrunning.Operation][google.longrunning.Operation] +// results from +// [FirestoreAdmin.ImportDocuments][mockgcp.firestore.admin.v1.FirestoreAdmin.ImportDocuments]. +type ImportDocumentsMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The time this operation started. + StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The time this operation completed. Will be unset if operation still in + // progress. + EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // The state of the import operation. + OperationState OperationState `protobuf:"varint,3,opt,name=operation_state,json=operationState,proto3,enum=mockgcp.firestore.admin.v1.OperationState" json:"operation_state,omitempty"` + // The progress, in documents, of this operation. + ProgressDocuments *Progress `protobuf:"bytes,4,opt,name=progress_documents,json=progressDocuments,proto3" json:"progress_documents,omitempty"` + // The progress, in bytes, of this operation. + ProgressBytes *Progress `protobuf:"bytes,5,opt,name=progress_bytes,json=progressBytes,proto3" json:"progress_bytes,omitempty"` + // Which collection IDs are being imported. + CollectionIds []string `protobuf:"bytes,6,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"` + // The location of the documents being imported. + InputUriPrefix string `protobuf:"bytes,7,opt,name=input_uri_prefix,json=inputUriPrefix,proto3" json:"input_uri_prefix,omitempty"` + // Which namespace IDs are being imported. + NamespaceIds []string `protobuf:"bytes,8,rep,name=namespace_ids,json=namespaceIds,proto3" json:"namespace_ids,omitempty"` +} + +func (x *ImportDocumentsMetadata) Reset() { + *x = ImportDocumentsMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportDocumentsMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportDocumentsMetadata) ProtoMessage() {} + +func (x *ImportDocumentsMetadata) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImportDocumentsMetadata.ProtoReflect.Descriptor instead. +func (*ImportDocumentsMetadata) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_operation_proto_rawDescGZIP(), []int{3} +} + +func (x *ImportDocumentsMetadata) GetStartTime() *timestamp.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *ImportDocumentsMetadata) GetEndTime() *timestamp.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +func (x *ImportDocumentsMetadata) GetOperationState() OperationState { + if x != nil { + return x.OperationState + } + return OperationState_OPERATION_STATE_UNSPECIFIED +} + +func (x *ImportDocumentsMetadata) GetProgressDocuments() *Progress { + if x != nil { + return x.ProgressDocuments + } + return nil +} + +func (x *ImportDocumentsMetadata) GetProgressBytes() *Progress { + if x != nil { + return x.ProgressBytes + } + return nil +} + +func (x *ImportDocumentsMetadata) GetCollectionIds() []string { + if x != nil { + return x.CollectionIds + } + return nil +} + +func (x *ImportDocumentsMetadata) GetInputUriPrefix() string { + if x != nil { + return x.InputUriPrefix + } + return "" +} + +func (x *ImportDocumentsMetadata) GetNamespaceIds() []string { + if x != nil { + return x.NamespaceIds + } + return nil +} + +// Metadata for [google.longrunning.Operation][google.longrunning.Operation] +// results from +// [FirestoreAdmin.BulkDeleteDocuments][mockgcp.firestore.admin.v1.FirestoreAdmin.BulkDeleteDocuments]. +type BulkDeleteDocumentsMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The time this operation started. + StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The time this operation completed. Will be unset if operation still in + // progress. + EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // The state of the operation. + OperationState OperationState `protobuf:"varint,3,opt,name=operation_state,json=operationState,proto3,enum=mockgcp.firestore.admin.v1.OperationState" json:"operation_state,omitempty"` + // The progress, in documents, of this operation. + ProgressDocuments *Progress `protobuf:"bytes,4,opt,name=progress_documents,json=progressDocuments,proto3" json:"progress_documents,omitempty"` + // The progress, in bytes, of this operation. + ProgressBytes *Progress `protobuf:"bytes,5,opt,name=progress_bytes,json=progressBytes,proto3" json:"progress_bytes,omitempty"` + // The IDs of the collection groups that are being deleted. + CollectionIds []string `protobuf:"bytes,6,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"` + // Which namespace IDs are being deleted. + NamespaceIds []string `protobuf:"bytes,7,rep,name=namespace_ids,json=namespaceIds,proto3" json:"namespace_ids,omitempty"` + // The timestamp that corresponds to the version of the database that is being + // read to get the list of documents to delete. This time can also be used as + // the timestamp of PITR in case of disaster recovery (subject to PITR window + // limit). + SnapshotTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=snapshot_time,json=snapshotTime,proto3" json:"snapshot_time,omitempty"` +} + +func (x *BulkDeleteDocumentsMetadata) Reset() { + *x = BulkDeleteDocumentsMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BulkDeleteDocumentsMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BulkDeleteDocumentsMetadata) ProtoMessage() {} + +func (x *BulkDeleteDocumentsMetadata) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BulkDeleteDocumentsMetadata.ProtoReflect.Descriptor instead. +func (*BulkDeleteDocumentsMetadata) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_operation_proto_rawDescGZIP(), []int{4} +} + +func (x *BulkDeleteDocumentsMetadata) GetStartTime() *timestamp.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *BulkDeleteDocumentsMetadata) GetEndTime() *timestamp.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +func (x *BulkDeleteDocumentsMetadata) GetOperationState() OperationState { + if x != nil { + return x.OperationState + } + return OperationState_OPERATION_STATE_UNSPECIFIED +} + +func (x *BulkDeleteDocumentsMetadata) GetProgressDocuments() *Progress { + if x != nil { + return x.ProgressDocuments + } + return nil +} + +func (x *BulkDeleteDocumentsMetadata) GetProgressBytes() *Progress { + if x != nil { + return x.ProgressBytes + } + return nil +} + +func (x *BulkDeleteDocumentsMetadata) GetCollectionIds() []string { + if x != nil { + return x.CollectionIds + } + return nil +} + +func (x *BulkDeleteDocumentsMetadata) GetNamespaceIds() []string { + if x != nil { + return x.NamespaceIds + } + return nil +} + +func (x *BulkDeleteDocumentsMetadata) GetSnapshotTime() *timestamp.Timestamp { + if x != nil { + return x.SnapshotTime + } + return nil +} + +// Returned in the [google.longrunning.Operation][google.longrunning.Operation] +// response field. +type ExportDocumentsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Location of the output files. This can be used to begin an import + // into Cloud Firestore (this project or another project) after the operation + // completes successfully. + OutputUriPrefix string `protobuf:"bytes,1,opt,name=output_uri_prefix,json=outputUriPrefix,proto3" json:"output_uri_prefix,omitempty"` +} + +func (x *ExportDocumentsResponse) Reset() { + *x = ExportDocumentsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExportDocumentsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExportDocumentsResponse) ProtoMessage() {} + +func (x *ExportDocumentsResponse) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExportDocumentsResponse.ProtoReflect.Descriptor instead. +func (*ExportDocumentsResponse) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_operation_proto_rawDescGZIP(), []int{5} +} + +func (x *ExportDocumentsResponse) GetOutputUriPrefix() string { + if x != nil { + return x.OutputUriPrefix + } + return "" +} + +// Metadata for the [long-running operation][google.longrunning.Operation] from +// the [RestoreDatabase][mockgcp.firestore.admin.v1.RestoreDatabase] request. +type RestoreDatabaseMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The time the restore was started. + StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The time the restore finished, unset for ongoing restores. + EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // The operation state of the restore. + OperationState OperationState `protobuf:"varint,3,opt,name=operation_state,json=operationState,proto3,enum=mockgcp.firestore.admin.v1.OperationState" json:"operation_state,omitempty"` + // The name of the database being restored to. + Database string `protobuf:"bytes,4,opt,name=database,proto3" json:"database,omitempty"` + // The name of the backup restoring from. + Backup string `protobuf:"bytes,5,opt,name=backup,proto3" json:"backup,omitempty"` + // How far along the restore is as an estimated percentage of remaining time. + ProgressPercentage *Progress `protobuf:"bytes,8,opt,name=progress_percentage,json=progressPercentage,proto3" json:"progress_percentage,omitempty"` +} + +func (x *RestoreDatabaseMetadata) Reset() { + *x = RestoreDatabaseMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RestoreDatabaseMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RestoreDatabaseMetadata) ProtoMessage() {} + +func (x *RestoreDatabaseMetadata) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RestoreDatabaseMetadata.ProtoReflect.Descriptor instead. +func (*RestoreDatabaseMetadata) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_operation_proto_rawDescGZIP(), []int{6} +} + +func (x *RestoreDatabaseMetadata) GetStartTime() *timestamp.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *RestoreDatabaseMetadata) GetEndTime() *timestamp.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +func (x *RestoreDatabaseMetadata) GetOperationState() OperationState { + if x != nil { + return x.OperationState + } + return OperationState_OPERATION_STATE_UNSPECIFIED +} + +func (x *RestoreDatabaseMetadata) GetDatabase() string { + if x != nil { + return x.Database + } + return "" +} + +func (x *RestoreDatabaseMetadata) GetBackup() string { + if x != nil { + return x.Backup + } + return "" +} + +func (x *RestoreDatabaseMetadata) GetProgressPercentage() *Progress { + if x != nil { + return x.ProgressPercentage + } + return nil +} + +// Describes the progress of the operation. +// Unit of work is generic and must be interpreted based on where +// [Progress][mockgcp.firestore.admin.v1.Progress] is used. +type Progress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The amount of work estimated. + EstimatedWork int64 `protobuf:"varint,1,opt,name=estimated_work,json=estimatedWork,proto3" json:"estimated_work,omitempty"` + // The amount of work completed. + CompletedWork int64 `protobuf:"varint,2,opt,name=completed_work,json=completedWork,proto3" json:"completed_work,omitempty"` +} + +func (x *Progress) Reset() { + *x = Progress{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Progress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Progress) ProtoMessage() {} + +func (x *Progress) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Progress.ProtoReflect.Descriptor instead. +func (*Progress) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_operation_proto_rawDescGZIP(), []int{7} +} + +func (x *Progress) GetEstimatedWork() int64 { + if x != nil { + return x.EstimatedWork + } + return 0 +} + +func (x *Progress) GetCompletedWork() int64 { + if x != nil { + return x.CompletedWork + } + return 0 +} + +// Information about an index configuration change. +type FieldOperationMetadata_IndexConfigDelta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Specifies how the index is changing. + ChangeType FieldOperationMetadata_IndexConfigDelta_ChangeType `protobuf:"varint,1,opt,name=change_type,json=changeType,proto3,enum=mockgcp.firestore.admin.v1.FieldOperationMetadata_IndexConfigDelta_ChangeType" json:"change_type,omitempty"` + // The index being changed. + Index *Index `protobuf:"bytes,2,opt,name=index,proto3" json:"index,omitempty"` +} + +func (x *FieldOperationMetadata_IndexConfigDelta) Reset() { + *x = FieldOperationMetadata_IndexConfigDelta{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FieldOperationMetadata_IndexConfigDelta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FieldOperationMetadata_IndexConfigDelta) ProtoMessage() {} + +func (x *FieldOperationMetadata_IndexConfigDelta) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FieldOperationMetadata_IndexConfigDelta.ProtoReflect.Descriptor instead. +func (*FieldOperationMetadata_IndexConfigDelta) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_operation_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *FieldOperationMetadata_IndexConfigDelta) GetChangeType() FieldOperationMetadata_IndexConfigDelta_ChangeType { + if x != nil { + return x.ChangeType + } + return FieldOperationMetadata_IndexConfigDelta_CHANGE_TYPE_UNSPECIFIED +} + +func (x *FieldOperationMetadata_IndexConfigDelta) GetIndex() *Index { + if x != nil { + return x.Index + } + return nil +} + +// Information about a TTL configuration change. +type FieldOperationMetadata_TtlConfigDelta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Specifies how the TTL configuration is changing. + ChangeType FieldOperationMetadata_TtlConfigDelta_ChangeType `protobuf:"varint,1,opt,name=change_type,json=changeType,proto3,enum=mockgcp.firestore.admin.v1.FieldOperationMetadata_TtlConfigDelta_ChangeType" json:"change_type,omitempty"` +} + +func (x *FieldOperationMetadata_TtlConfigDelta) Reset() { + *x = FieldOperationMetadata_TtlConfigDelta{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FieldOperationMetadata_TtlConfigDelta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FieldOperationMetadata_TtlConfigDelta) ProtoMessage() {} + +func (x *FieldOperationMetadata_TtlConfigDelta) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FieldOperationMetadata_TtlConfigDelta.ProtoReflect.Descriptor instead. +func (*FieldOperationMetadata_TtlConfigDelta) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_operation_proto_rawDescGZIP(), []int{1, 1} +} + +func (x *FieldOperationMetadata_TtlConfigDelta) GetChangeType() FieldOperationMetadata_TtlConfigDelta_ChangeType { + if x != nil { + return x.ChangeType + } + return FieldOperationMetadata_TtlConfigDelta_CHANGE_TYPE_UNSPECIFIED +} + +var File_mockgcp_firestore_admin_v1_operation_proto protoreflect.FileDescriptor + +var file_mockgcp_firestore_admin_v1_operation_proto_rawDesc = []byte{ + 0x0a, 0x2a, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x6d, 0x6f, + 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x66, 0x69, 0x72, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x84, 0x03, 0x0a, + 0x16, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, + 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x53, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x6f, + 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x22, 0xa7, 0x08, 0x0a, 0x16, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, + 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x73, 0x0a, 0x13, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, + 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, 0x11, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x53, 0x0a, + 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, + 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x11, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, + 0x6b, 0x0a, 0x10, 0x74, 0x74, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x64, 0x65, + 0x6c, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, + 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x74, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, 0x0e, 0x74, 0x74, + 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x1a, 0xfc, 0x01, 0x0a, + 0x10, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x65, 0x6c, 0x74, + 0x61, 0x12, 0x6f, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, + 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x3e, 0x0a, 0x0a, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x48, 0x41, + 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, 0x44, 0x10, 0x01, 0x12, + 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x02, 0x1a, 0xbf, 0x01, 0x0a, 0x0e, + 0x54, 0x74, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x6d, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x4c, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, + 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x74, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, + 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x43, + 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, 0x44, 0x10, + 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x02, 0x22, 0xbb, 0x04, + 0x0a, 0x17, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x0f, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, + 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x53, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, + 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x55, 0x72, 0x69, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x73, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xf8, 0x03, 0x0a, 0x17, + 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x0f, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0e, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x53, + 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x11, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x6f, + 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x5f, 0x75, 0x72, 0x69, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x55, 0x72, 0x69, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x49, 0x64, 0x73, 0x22, 0x93, 0x04, 0x0a, 0x1b, 0x42, 0x75, 0x6c, 0x6b, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x0f, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2a, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x53, 0x0a, + 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, + 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x11, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, + 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x73, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, + 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x45, 0x0a, 0x17, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x5f, 0x75, 0x72, 0x69, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x55, 0x72, 0x69, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x22, 0xb9, 0x03, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x53, 0x0a, 0x0f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, + 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x66, + 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, + 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xfa, 0x41, 0x21, 0x0a, + 0x1f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x52, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x55, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, + 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x12, 0x70, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x22, + 0x58, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, + 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x57, 0x6f, + 0x72, 0x6b, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, + 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x2a, 0x9e, 0x01, 0x0a, 0x0e, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x1b, + 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, + 0x0c, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x49, 0x5a, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, + 0x0e, 0x0a, 0x0a, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, + 0x0e, 0x0a, 0x0a, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, + 0x0e, 0x0a, 0x0a, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, + 0x0e, 0x0a, 0x0a, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x46, 0x55, 0x4c, 0x10, 0x05, 0x12, + 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x0d, 0x0a, 0x09, 0x43, + 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x42, 0xde, 0x01, 0x0a, 0x1e, 0x63, + 0x6f, 0x6d, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x39, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x61, + 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x70, 0x62, 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x70, 0x62, 0xa2, 0x02, 0x04, 0x47, 0x43, 0x46, + 0x53, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x5c, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5c, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x23, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_mockgcp_firestore_admin_v1_operation_proto_rawDescOnce sync.Once + file_mockgcp_firestore_admin_v1_operation_proto_rawDescData = file_mockgcp_firestore_admin_v1_operation_proto_rawDesc +) + +func file_mockgcp_firestore_admin_v1_operation_proto_rawDescGZIP() []byte { + file_mockgcp_firestore_admin_v1_operation_proto_rawDescOnce.Do(func() { + file_mockgcp_firestore_admin_v1_operation_proto_rawDescData = protoimpl.X.CompressGZIP(file_mockgcp_firestore_admin_v1_operation_proto_rawDescData) + }) + return file_mockgcp_firestore_admin_v1_operation_proto_rawDescData +} + +var file_mockgcp_firestore_admin_v1_operation_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_mockgcp_firestore_admin_v1_operation_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_mockgcp_firestore_admin_v1_operation_proto_goTypes = []interface{}{ + (OperationState)(0), // 0: mockgcp.firestore.admin.v1.OperationState + (FieldOperationMetadata_IndexConfigDelta_ChangeType)(0), // 1: mockgcp.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta.ChangeType + (FieldOperationMetadata_TtlConfigDelta_ChangeType)(0), // 2: mockgcp.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta.ChangeType + (*IndexOperationMetadata)(nil), // 3: mockgcp.firestore.admin.v1.IndexOperationMetadata + (*FieldOperationMetadata)(nil), // 4: mockgcp.firestore.admin.v1.FieldOperationMetadata + (*ExportDocumentsMetadata)(nil), // 5: mockgcp.firestore.admin.v1.ExportDocumentsMetadata + (*ImportDocumentsMetadata)(nil), // 6: mockgcp.firestore.admin.v1.ImportDocumentsMetadata + (*BulkDeleteDocumentsMetadata)(nil), // 7: mockgcp.firestore.admin.v1.BulkDeleteDocumentsMetadata + (*ExportDocumentsResponse)(nil), // 8: mockgcp.firestore.admin.v1.ExportDocumentsResponse + (*RestoreDatabaseMetadata)(nil), // 9: mockgcp.firestore.admin.v1.RestoreDatabaseMetadata + (*Progress)(nil), // 10: mockgcp.firestore.admin.v1.Progress + (*FieldOperationMetadata_IndexConfigDelta)(nil), // 11: mockgcp.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta + (*FieldOperationMetadata_TtlConfigDelta)(nil), // 12: mockgcp.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta + (*timestamp.Timestamp)(nil), // 13: google.protobuf.Timestamp + (*Index)(nil), // 14: mockgcp.firestore.admin.v1.Index +} +var file_mockgcp_firestore_admin_v1_operation_proto_depIdxs = []int32{ + 13, // 0: mockgcp.firestore.admin.v1.IndexOperationMetadata.start_time:type_name -> google.protobuf.Timestamp + 13, // 1: mockgcp.firestore.admin.v1.IndexOperationMetadata.end_time:type_name -> google.protobuf.Timestamp + 0, // 2: mockgcp.firestore.admin.v1.IndexOperationMetadata.state:type_name -> mockgcp.firestore.admin.v1.OperationState + 10, // 3: mockgcp.firestore.admin.v1.IndexOperationMetadata.progress_documents:type_name -> mockgcp.firestore.admin.v1.Progress + 10, // 4: mockgcp.firestore.admin.v1.IndexOperationMetadata.progress_bytes:type_name -> mockgcp.firestore.admin.v1.Progress + 13, // 5: mockgcp.firestore.admin.v1.FieldOperationMetadata.start_time:type_name -> google.protobuf.Timestamp + 13, // 6: mockgcp.firestore.admin.v1.FieldOperationMetadata.end_time:type_name -> google.protobuf.Timestamp + 11, // 7: mockgcp.firestore.admin.v1.FieldOperationMetadata.index_config_deltas:type_name -> mockgcp.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta + 0, // 8: mockgcp.firestore.admin.v1.FieldOperationMetadata.state:type_name -> mockgcp.firestore.admin.v1.OperationState + 10, // 9: mockgcp.firestore.admin.v1.FieldOperationMetadata.progress_documents:type_name -> mockgcp.firestore.admin.v1.Progress + 10, // 10: mockgcp.firestore.admin.v1.FieldOperationMetadata.progress_bytes:type_name -> mockgcp.firestore.admin.v1.Progress + 12, // 11: mockgcp.firestore.admin.v1.FieldOperationMetadata.ttl_config_delta:type_name -> mockgcp.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta + 13, // 12: mockgcp.firestore.admin.v1.ExportDocumentsMetadata.start_time:type_name -> google.protobuf.Timestamp + 13, // 13: mockgcp.firestore.admin.v1.ExportDocumentsMetadata.end_time:type_name -> google.protobuf.Timestamp + 0, // 14: mockgcp.firestore.admin.v1.ExportDocumentsMetadata.operation_state:type_name -> mockgcp.firestore.admin.v1.OperationState + 10, // 15: mockgcp.firestore.admin.v1.ExportDocumentsMetadata.progress_documents:type_name -> mockgcp.firestore.admin.v1.Progress + 10, // 16: mockgcp.firestore.admin.v1.ExportDocumentsMetadata.progress_bytes:type_name -> mockgcp.firestore.admin.v1.Progress + 13, // 17: mockgcp.firestore.admin.v1.ExportDocumentsMetadata.snapshot_time:type_name -> google.protobuf.Timestamp + 13, // 18: mockgcp.firestore.admin.v1.ImportDocumentsMetadata.start_time:type_name -> google.protobuf.Timestamp + 13, // 19: mockgcp.firestore.admin.v1.ImportDocumentsMetadata.end_time:type_name -> google.protobuf.Timestamp + 0, // 20: mockgcp.firestore.admin.v1.ImportDocumentsMetadata.operation_state:type_name -> mockgcp.firestore.admin.v1.OperationState + 10, // 21: mockgcp.firestore.admin.v1.ImportDocumentsMetadata.progress_documents:type_name -> mockgcp.firestore.admin.v1.Progress + 10, // 22: mockgcp.firestore.admin.v1.ImportDocumentsMetadata.progress_bytes:type_name -> mockgcp.firestore.admin.v1.Progress + 13, // 23: mockgcp.firestore.admin.v1.BulkDeleteDocumentsMetadata.start_time:type_name -> google.protobuf.Timestamp + 13, // 24: mockgcp.firestore.admin.v1.BulkDeleteDocumentsMetadata.end_time:type_name -> google.protobuf.Timestamp + 0, // 25: mockgcp.firestore.admin.v1.BulkDeleteDocumentsMetadata.operation_state:type_name -> mockgcp.firestore.admin.v1.OperationState + 10, // 26: mockgcp.firestore.admin.v1.BulkDeleteDocumentsMetadata.progress_documents:type_name -> mockgcp.firestore.admin.v1.Progress + 10, // 27: mockgcp.firestore.admin.v1.BulkDeleteDocumentsMetadata.progress_bytes:type_name -> mockgcp.firestore.admin.v1.Progress + 13, // 28: mockgcp.firestore.admin.v1.BulkDeleteDocumentsMetadata.snapshot_time:type_name -> google.protobuf.Timestamp + 13, // 29: mockgcp.firestore.admin.v1.RestoreDatabaseMetadata.start_time:type_name -> google.protobuf.Timestamp + 13, // 30: mockgcp.firestore.admin.v1.RestoreDatabaseMetadata.end_time:type_name -> google.protobuf.Timestamp + 0, // 31: mockgcp.firestore.admin.v1.RestoreDatabaseMetadata.operation_state:type_name -> mockgcp.firestore.admin.v1.OperationState + 10, // 32: mockgcp.firestore.admin.v1.RestoreDatabaseMetadata.progress_percentage:type_name -> mockgcp.firestore.admin.v1.Progress + 1, // 33: mockgcp.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta.change_type:type_name -> mockgcp.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta.ChangeType + 14, // 34: mockgcp.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta.index:type_name -> mockgcp.firestore.admin.v1.Index + 2, // 35: mockgcp.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta.change_type:type_name -> mockgcp.firestore.admin.v1.FieldOperationMetadata.TtlConfigDelta.ChangeType + 36, // [36:36] is the sub-list for method output_type + 36, // [36:36] is the sub-list for method input_type + 36, // [36:36] is the sub-list for extension type_name + 36, // [36:36] is the sub-list for extension extendee + 0, // [0:36] is the sub-list for field type_name +} + +func init() { file_mockgcp_firestore_admin_v1_operation_proto_init() } +func file_mockgcp_firestore_admin_v1_operation_proto_init() { + if File_mockgcp_firestore_admin_v1_operation_proto != nil { + return + } + file_mockgcp_firestore_admin_v1_index_proto_init() + if !protoimpl.UnsafeEnabled { + file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IndexOperationMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FieldOperationMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExportDocumentsMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportDocumentsMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BulkDeleteDocumentsMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExportDocumentsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RestoreDatabaseMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Progress); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FieldOperationMetadata_IndexConfigDelta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_operation_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FieldOperationMetadata_TtlConfigDelta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_mockgcp_firestore_admin_v1_operation_proto_rawDesc, + NumEnums: 3, + NumMessages: 10, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_mockgcp_firestore_admin_v1_operation_proto_goTypes, + DependencyIndexes: file_mockgcp_firestore_admin_v1_operation_proto_depIdxs, + EnumInfos: file_mockgcp_firestore_admin_v1_operation_proto_enumTypes, + MessageInfos: file_mockgcp_firestore_admin_v1_operation_proto_msgTypes, + }.Build() + File_mockgcp_firestore_admin_v1_operation_proto = out.File + file_mockgcp_firestore_admin_v1_operation_proto_rawDesc = nil + file_mockgcp_firestore_admin_v1_operation_proto_goTypes = nil + file_mockgcp_firestore_admin_v1_operation_proto_depIdxs = nil +} diff --git a/mockgcp/generated/mockgcp/firestore/admin/v1/schedule.pb.go b/mockgcp/generated/mockgcp/firestore/admin/v1/schedule.pb.go new file mode 100644 index 0000000000..c5d6bb442f --- /dev/null +++ b/mockgcp/generated/mockgcp/firestore/admin/v1/schedule.pb.go @@ -0,0 +1,448 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.12.4 +// source: mockgcp/firestore/admin/v1/schedule.proto + +package adminpb + +import ( + duration "github.com/golang/protobuf/ptypes/duration" + timestamp "github.com/golang/protobuf/ptypes/timestamp" + _ "google.golang.org/genproto/googleapis/api/annotations" + dayofweek "google.golang.org/genproto/googleapis/type/dayofweek" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// A backup schedule for a Cloud Firestore Database. +// +// This resource is owned by the database it is backing up, and is deleted along +// with the database. The actual backups are not though. +type BackupSchedule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The unique backup schedule identifier across all locations and + // databases for the given project. + // + // This will be auto-assigned. + // + // Format is + // `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The timestamp at which this backup schedule was created and + // effective since. + // + // No backups will be created for this schedule before this time. + CreateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The timestamp at which this backup schedule was most recently + // updated. When a backup schedule is first created, this is the same as + // create_time. + UpdateTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // At what relative time in the future, compared to its creation time, + // the backup should be deleted, e.g. keep backups for 7 days. + // + // The maximum supported retention period is 14 weeks. + Retention *duration.Duration `protobuf:"bytes,6,opt,name=retention,proto3" json:"retention,omitempty"` + // A oneof field to represent when backups will be taken. + // + // Types that are assignable to Recurrence: + // + // *BackupSchedule_DailyRecurrence + // *BackupSchedule_WeeklyRecurrence + Recurrence isBackupSchedule_Recurrence `protobuf_oneof:"recurrence"` +} + +func (x *BackupSchedule) Reset() { + *x = BackupSchedule{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_schedule_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BackupSchedule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BackupSchedule) ProtoMessage() {} + +func (x *BackupSchedule) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_schedule_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BackupSchedule.ProtoReflect.Descriptor instead. +func (*BackupSchedule) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_schedule_proto_rawDescGZIP(), []int{0} +} + +func (x *BackupSchedule) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *BackupSchedule) GetCreateTime() *timestamp.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *BackupSchedule) GetUpdateTime() *timestamp.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *BackupSchedule) GetRetention() *duration.Duration { + if x != nil { + return x.Retention + } + return nil +} + +func (m *BackupSchedule) GetRecurrence() isBackupSchedule_Recurrence { + if m != nil { + return m.Recurrence + } + return nil +} + +func (x *BackupSchedule) GetDailyRecurrence() *DailyRecurrence { + if x, ok := x.GetRecurrence().(*BackupSchedule_DailyRecurrence); ok { + return x.DailyRecurrence + } + return nil +} + +func (x *BackupSchedule) GetWeeklyRecurrence() *WeeklyRecurrence { + if x, ok := x.GetRecurrence().(*BackupSchedule_WeeklyRecurrence); ok { + return x.WeeklyRecurrence + } + return nil +} + +type isBackupSchedule_Recurrence interface { + isBackupSchedule_Recurrence() +} + +type BackupSchedule_DailyRecurrence struct { + // For a schedule that runs daily. + DailyRecurrence *DailyRecurrence `protobuf:"bytes,7,opt,name=daily_recurrence,json=dailyRecurrence,proto3,oneof"` +} + +type BackupSchedule_WeeklyRecurrence struct { + // For a schedule that runs weekly on a specific day. + WeeklyRecurrence *WeeklyRecurrence `protobuf:"bytes,8,opt,name=weekly_recurrence,json=weeklyRecurrence,proto3,oneof"` +} + +func (*BackupSchedule_DailyRecurrence) isBackupSchedule_Recurrence() {} + +func (*BackupSchedule_WeeklyRecurrence) isBackupSchedule_Recurrence() {} + +// Represents a recurring schedule that runs every day. +// +// The time zone is UTC. +type DailyRecurrence struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DailyRecurrence) Reset() { + *x = DailyRecurrence{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_schedule_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DailyRecurrence) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DailyRecurrence) ProtoMessage() {} + +func (x *DailyRecurrence) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_schedule_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DailyRecurrence.ProtoReflect.Descriptor instead. +func (*DailyRecurrence) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_schedule_proto_rawDescGZIP(), []int{1} +} + +// Represents a recurring schedule that runs on a specified day of the week. +// +// The time zone is UTC. +type WeeklyRecurrence struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The day of week to run. + // + // DAY_OF_WEEK_UNSPECIFIED is not allowed. + Day dayofweek.DayOfWeek `protobuf:"varint,2,opt,name=day,proto3,enum=google.type.DayOfWeek" json:"day,omitempty"` +} + +func (x *WeeklyRecurrence) Reset() { + *x = WeeklyRecurrence{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_firestore_admin_v1_schedule_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WeeklyRecurrence) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WeeklyRecurrence) ProtoMessage() {} + +func (x *WeeklyRecurrence) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_firestore_admin_v1_schedule_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WeeklyRecurrence.ProtoReflect.Descriptor instead. +func (*WeeklyRecurrence) Descriptor() ([]byte, []int) { + return file_mockgcp_firestore_admin_v1_schedule_proto_rawDescGZIP(), []int{2} +} + +func (x *WeeklyRecurrence) GetDay() dayofweek.DayOfWeek { + if x != nil { + return x.Day + } + return dayofweek.DayOfWeek(0) +} + +var File_mockgcp_firestore_admin_v1_schedule_proto protoreflect.FileDescriptor + +var file_mockgcp_firestore_admin_v1_schedule_proto_rawDesc = []byte{ + 0x0a, 0x29, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, + 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, + 0x65, 0x2f, 0x64, 0x61, 0x79, 0x6f, 0x66, 0x77, 0x65, 0x65, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0xa4, 0x04, 0x0a, 0x0e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, + 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x10, 0x64, 0x61, + 0x69, 0x6c, 0x79, 0x5f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, + 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x52, 0x65, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x11, 0x77, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x5f, 0x72, + 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x65, + 0x6b, 0x6c, 0x79, 0x52, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, + 0x10, 0x77, 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x52, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x3a, 0x77, 0xea, 0x41, 0x74, 0x0a, 0x27, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, + 0x49, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x7d, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x7d, 0x42, 0x0c, 0x0a, 0x0a, 0x72, 0x65, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x61, 0x69, 0x6c, + 0x79, 0x52, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x3c, 0x0a, 0x10, 0x57, + 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x52, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, + 0x28, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x79, 0x4f, 0x66, + 0x57, 0x65, 0x65, 0x6b, 0x52, 0x03, 0x64, 0x61, 0x79, 0x42, 0xdd, 0x01, 0x0a, 0x1e, 0x63, 0x6f, + 0x6d, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x67, 0x6f, 0x2f, 0x66, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x76, 0x31, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x70, 0x62, + 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x70, 0x62, 0xa2, 0x02, 0x04, 0x47, 0x43, 0x46, 0x53, 0xaa, + 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x46, + 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, + 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x5c, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x5c, 0x56, 0x31, 0xea, 0x02, 0x23, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x46, 0x69, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3a, 0x3a, + 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_mockgcp_firestore_admin_v1_schedule_proto_rawDescOnce sync.Once + file_mockgcp_firestore_admin_v1_schedule_proto_rawDescData = file_mockgcp_firestore_admin_v1_schedule_proto_rawDesc +) + +func file_mockgcp_firestore_admin_v1_schedule_proto_rawDescGZIP() []byte { + file_mockgcp_firestore_admin_v1_schedule_proto_rawDescOnce.Do(func() { + file_mockgcp_firestore_admin_v1_schedule_proto_rawDescData = protoimpl.X.CompressGZIP(file_mockgcp_firestore_admin_v1_schedule_proto_rawDescData) + }) + return file_mockgcp_firestore_admin_v1_schedule_proto_rawDescData +} + +var file_mockgcp_firestore_admin_v1_schedule_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_mockgcp_firestore_admin_v1_schedule_proto_goTypes = []interface{}{ + (*BackupSchedule)(nil), // 0: mockgcp.firestore.admin.v1.BackupSchedule + (*DailyRecurrence)(nil), // 1: mockgcp.firestore.admin.v1.DailyRecurrence + (*WeeklyRecurrence)(nil), // 2: mockgcp.firestore.admin.v1.WeeklyRecurrence + (*timestamp.Timestamp)(nil), // 3: google.protobuf.Timestamp + (*duration.Duration)(nil), // 4: google.protobuf.Duration + (dayofweek.DayOfWeek)(0), // 5: google.type.DayOfWeek +} +var file_mockgcp_firestore_admin_v1_schedule_proto_depIdxs = []int32{ + 3, // 0: mockgcp.firestore.admin.v1.BackupSchedule.create_time:type_name -> google.protobuf.Timestamp + 3, // 1: mockgcp.firestore.admin.v1.BackupSchedule.update_time:type_name -> google.protobuf.Timestamp + 4, // 2: mockgcp.firestore.admin.v1.BackupSchedule.retention:type_name -> google.protobuf.Duration + 1, // 3: mockgcp.firestore.admin.v1.BackupSchedule.daily_recurrence:type_name -> mockgcp.firestore.admin.v1.DailyRecurrence + 2, // 4: mockgcp.firestore.admin.v1.BackupSchedule.weekly_recurrence:type_name -> mockgcp.firestore.admin.v1.WeeklyRecurrence + 5, // 5: mockgcp.firestore.admin.v1.WeeklyRecurrence.day:type_name -> google.type.DayOfWeek + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_mockgcp_firestore_admin_v1_schedule_proto_init() } +func file_mockgcp_firestore_admin_v1_schedule_proto_init() { + if File_mockgcp_firestore_admin_v1_schedule_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_mockgcp_firestore_admin_v1_schedule_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BackupSchedule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_schedule_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DailyRecurrence); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_firestore_admin_v1_schedule_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WeeklyRecurrence); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_mockgcp_firestore_admin_v1_schedule_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*BackupSchedule_DailyRecurrence)(nil), + (*BackupSchedule_WeeklyRecurrence)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_mockgcp_firestore_admin_v1_schedule_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_mockgcp_firestore_admin_v1_schedule_proto_goTypes, + DependencyIndexes: file_mockgcp_firestore_admin_v1_schedule_proto_depIdxs, + MessageInfos: file_mockgcp_firestore_admin_v1_schedule_proto_msgTypes, + }.Build() + File_mockgcp_firestore_admin_v1_schedule_proto = out.File + file_mockgcp_firestore_admin_v1_schedule_proto_rawDesc = nil + file_mockgcp_firestore_admin_v1_schedule_proto_goTypes = nil + file_mockgcp_firestore_admin_v1_schedule_proto_depIdxs = nil +} diff --git a/mockgcp/mock_http_roundtrip.go b/mockgcp/mock_http_roundtrip.go index 385ed00ab0..122dbc1f8d 100644 --- a/mockgcp/mock_http_roundtrip.go +++ b/mockgcp/mock_http_roundtrip.go @@ -53,6 +53,7 @@ import ( "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/mockdataform" "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/mockedgecontainer" "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/mockedgenetwork" + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/mockfirestore" "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/mockgkehub" "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/mockgkemulticloud" "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/mockiam" @@ -165,6 +166,7 @@ func NewMockRoundTripper(t *testing.T, k8sClient client.Client, storage storage. services = append(services, mockcertificatemanager.New(env, storage)) services = append(services, mockcompute.New(env, storage)) services = append(services, mockdataflow.New(env, storage)) + services = append(services, mockfirestore.New(env, storage)) services = append(services, mockgkemulticloud.New(env, storage)) services = append(services, mockiam.New(env, storage)) services = append(services, mockkms.New(env, storage)) diff --git a/mockgcp/mockbigqueryconnection/connection.go b/mockgcp/mockbigqueryconnection/connection.go index a48fcf23fc..fc1cc3f542 100644 --- a/mockgcp/mockbigqueryconnection/connection.go +++ b/mockgcp/mockbigqueryconnection/connection.go @@ -16,6 +16,8 @@ package mockbigqueryconnection import ( "context" + "fmt" + "math/rand" "strings" "time" @@ -54,7 +56,16 @@ func (s *ConnectionV1) GetConnection(ctx context.Context, req *pb.GetConnectionR } func (s *ConnectionV1) CreateConnection(ctx context.Context, req *pb.CreateConnectionRequest) (*pb.Connection, error) { - reqName := req.Parent + "/connections/" + req.ConnectionId + var reqName string + if req.ConnectionId != "" { + reqName = req.Parent + "/connections/" + req.ConnectionId + } else if req.Connection.Name != "" { + reqName = req.Connection.Name + } else { + // reqName = req.Parent + "/connections/" + uuid.New().String() + // Using fixed UUID to test "acquire" in spec.resourceID. This also fix the dynamic uuid value in the `x-goog-request-params` header. + reqName = req.Parent + "/connections/" + "71389360-831c-431d-8975-837aee2153be" + } name, err := s.parseConnectionName(reqName) if err != nil { return nil, err @@ -65,11 +76,23 @@ func (s *ConnectionV1) CreateConnection(ctx context.Context, req *pb.CreateConne obj := proto.Clone(req.Connection).(*pb.Connection) - obj.Name = name.stringInResponse() + obj.Name = name.String() obj.CreationTime = now.Unix() obj.LastModifiedTime = now.Unix() - if obj.GetCloudResource().GetServiceAccountId() == "" { - obj.GetCloudResource().ServiceAccountId = "bqcx-${projectNumber}-abcd@gcp-sa-bigquery-condel.iam.gserviceaccount.com" + + buildServiceAccountId := func() string { + letterRunes := []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") + b := make([]rune, 4) + for i := range b { + b[i] = letterRunes[rand.Intn(len(letterRunes))] + } + return fmt.Sprintf("bqcx-%s-%s@gcp-sa-bigquery-condel.iam.gserviceaccount.com", req.GetParent(), string(b)) + } + + obj.Properties = &pb.Connection_CloudResource{ + CloudResource: &pb.CloudResourceProperties{ + ServiceAccountId: buildServiceAccountId(), + }, } if err := s.storage.Create(ctx, fqn, obj); err != nil { @@ -135,12 +158,6 @@ func (n *connectionName) String() string { return "projects/" + n.Project.ID + "/locations/" + n.Location + "/connections/" + n.ResourceID } -func (n *connectionName) stringInResponse() string { - // The returned "name" in the response uses the project number instead of - // project ID. - return "projects/${projectNumber}/locations/" + n.Location + "/connections/" + n.ResourceID -} - // parseConnectionName parses a string into a connectionName. // The expected form is projects//locations//connections/ func (s *MockService) parseConnectionName(name string) (*connectionName, error) { diff --git a/mockgcp/mockcloudbuild/workerpool.go b/mockgcp/mockcloudbuild/workerpool.go index fbbdc7ce70..3291d56321 100644 --- a/mockgcp/mockcloudbuild/workerpool.go +++ b/mockgcp/mockcloudbuild/workerpool.go @@ -79,6 +79,9 @@ func (s *CloudBuildV1) CreateWorkerPool(ctx context.Context, req *pb.CreateWorke result.UpdateTime = now result.State = pb.WorkerPool_RUNNING result.Etag = fields.ComputeWeakEtag(result) + if err := s.storage.Update(ctx, fqn, result); err != nil { // update resource object when LRO is done + return nil, err + } return result, nil }) } @@ -125,6 +128,9 @@ func (s *CloudBuildV1) UpdateWorkerPool(ctx context.Context, req *pb.UpdateWorke result.UpdateTime = now result.State = pb.WorkerPool_RUNNING result.Etag = fields.ComputeWeakEtag(result) + if err := s.storage.Update(ctx, fqn, result); err != nil { // update resource object when LRO is done + return nil, err + } return result, nil }) } diff --git a/mockgcp/mockcompute/globaladdress.go b/mockgcp/mockcompute/globaladdress.go index 1888f73e20..210efee888 100644 --- a/mockgcp/mockcompute/globaladdress.go +++ b/mockgcp/mockcompute/globaladdress.go @@ -75,7 +75,15 @@ func (s *GlobalAddressesV1) Insert(ctx context.Context, req *pb.InsertGlobalAddr return nil, err } - return s.newLRO(ctx, name.Project.ID) + op := &pb.Operation{ + TargetId: obj.Id, + TargetLink: obj.SelfLink, + OperationType: PtrTo("insert"), + User: PtrTo("user@example.com"), + } + return s.startGlobalLRO(ctx, name.Project.ID, op, func() (proto.Message, error) { + return obj, nil + }) } func (s *GlobalAddressesV1) Delete(ctx context.Context, req *pb.DeleteGlobalAddressRequest) (*pb.Operation, error) { @@ -93,7 +101,15 @@ func (s *GlobalAddressesV1) Delete(ctx context.Context, req *pb.DeleteGlobalAddr return nil, err } - return s.newLRO(ctx, name.Project.ID) + op := &pb.Operation{ + TargetId: deleted.Id, + TargetLink: deleted.SelfLink, + OperationType: PtrTo("delete"), + User: PtrTo("user@example.com"), + } + return s.startGlobalLRO(ctx, name.Project.ID, op, func() (proto.Message, error) { + return deleted, nil + }) } func (s *GlobalAddressesV1) SetLabels(ctx context.Context, req *pb.SetLabelsGlobalAddressRequest) (*pb.Operation, error) { diff --git a/mockgcp/mockcompute/globalsslcertificatesv1.go b/mockgcp/mockcompute/globalsslcertificatesv1.go index b42bff7103..9e45b748c6 100644 --- a/mockgcp/mockcompute/globalsslcertificatesv1.go +++ b/mockgcp/mockcompute/globalsslcertificatesv1.go @@ -18,13 +18,11 @@ import ( "context" "strings" + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common/projects" + pb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/compute/v1" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "google.golang.org/protobuf/proto" - apierrors "k8s.io/apimachinery/pkg/api/errors" - - "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common/projects" - pb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/compute/v1" ) type GlobalSSLCertificatesV1 struct { @@ -67,7 +65,7 @@ func (s *GlobalSSLCertificatesV1) Insert(ctx context.Context, req *pb.InsertSslC obj.Kind = PtrTo("compute#sslCertificate") if err := s.storage.Create(ctx, fqn, obj); err != nil { - return nil, status.Errorf(codes.Internal, "error creating sslCertificate: %v", err) + return nil, err } op := &pb.Operation{ @@ -92,11 +90,7 @@ func (s *GlobalSSLCertificatesV1) Delete(ctx context.Context, req *pb.DeleteSslC deleted := &pb.SslCertificate{} if err := s.storage.Delete(ctx, fqn, deleted); err != nil { - if apierrors.IsNotFound(err) { - return nil, status.Errorf(codes.NotFound, "sslCertificate %q not found", name) - } - - return nil, status.Errorf(codes.Internal, "error deleting sslCertificate: %v", err) + return nil, err } op := &pb.Operation{ @@ -120,7 +114,7 @@ func (n *globalSSLCertificateName) String() string { } // parseGlobalSslCertificateName parses a string into a globalSslCertificateName. -// The expected form is `projects/*/regions/*/sslcertificate/*`. +// The expected form is `projects/*/global/sslcertificate/*`. func (s *MockService) parseGlobalSslCertificateName(name string) (*globalSSLCertificateName, error) { tokens := strings.Split(name, "/") diff --git a/mockgcp/mockcompute/globaltargethttpsproxiesv1.go b/mockgcp/mockcompute/globaltargethttpsproxiesv1.go new file mode 100644 index 0000000000..2a3e0069a8 --- /dev/null +++ b/mockgcp/mockcompute/globaltargethttpsproxiesv1.go @@ -0,0 +1,273 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mockcompute + +import ( + "context" + "fmt" + "strings" + + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common/projects" + pb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/compute/v1" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +type GlobalTargetHTTPSProxiesV1 struct { + *MockService + pb.UnimplementedTargetHttpsProxiesServer +} + +func (s *GlobalTargetHTTPSProxiesV1) Get(ctx context.Context, req *pb.GetTargetHttpsProxyRequest) (*pb.TargetHttpsProxy, error) { + reqName := "projects/" + req.GetProject() + "/global" + "/targetHttpsProxies/" + req.GetTargetHttpsProxy() + name, err := s.parseGlobalTargetHttpsProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + obj := &pb.TargetHttpsProxy{} + if err := s.storage.Get(ctx, fqn, obj); err != nil { + return nil, err + } + + return obj, nil +} + +func (s *GlobalTargetHTTPSProxiesV1) Insert(ctx context.Context, req *pb.InsertTargetHttpsProxyRequest) (*pb.Operation, error) { + reqName := "projects/" + req.GetProject() + "/global" + "/targetHttpsProxies/" + req.GetTargetHttpsProxyResource().GetName() + name, err := s.parseGlobalTargetHttpsProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + id := s.generateID() + + obj := proto.Clone(req.GetTargetHttpsProxyResource()).(*pb.TargetHttpsProxy) + obj.SelfLink = PtrTo("https://www.googleapis.com/compute/v1/" + name.String()) + obj.CreationTimestamp = PtrTo(s.nowString()) + obj.Id = &id + obj.Kind = PtrTo("compute#targetHttpsProxy") + if obj.Fingerprint == nil { + obj.Fingerprint = PtrTo(computeFingerprint(obj)) + } + + if obj.SslCertificates != nil { + var certs []string + for _, cert := range obj.GetSslCertificates() { + // todo(yuhou): this is a strange design of TF/GCP API. + // GCP field `sslCertificates` refers to SSL Certificate resource or Certificate Manager Certificate resource, + // Mixing Classic Certificates and Certificate Manager Certificates is not allowed. + // TF handled it by adding a new field `certificateManagerCertificates` and using `conflictWith` to avoid the mixed values. + // ref: https://github.com/hashicorp/terraform-provider-google/blob/31e35e8baaee132be5e25cd5d4740b9ac920dd57/google/services/compute/resource_compute_target_https_proxy.go#L1073s + if strings.Contains(cert, "certificates") { + cert := strings.TrimPrefix(cert, "https://certificatemanager.googleapis.com/v1/") + tokens := strings.Split(cert, "/") + if len(tokens) == 6 && tokens[0] == "projects" && tokens[2] == "locations" && tokens[4] == "certificates" { + } else { + return nil, status.Errorf(codes.InvalidArgument, "certificateManagerCertificate %q is not valid", cert) + } + certs = append(certs, fmt.Sprintf("//certificatemanager.googleapis.com/projects/%s/locations/global/certificates/%s", tokens[1], tokens[5])) + } else { + sslCertName, err := s.parseGlobalSslCertificateName(cert) + if err != nil { + return nil, status.Errorf(codes.InvalidArgument, "sslCertName %q is not valid", sslCertName) + } + certs = append(certs, fmt.Sprintf("https://www.googleapis.com/compute/beta/projects/%s/global/sslCertificates/%s", sslCertName.Project.ID, sslCertName.Name)) + } + obj.SslCertificates = certs + } + } + if obj.UrlMap != nil { + mapName, err := s.parseGlobalUrlMapName(obj.GetUrlMap()) + if err != nil { + return nil, status.Errorf(codes.InvalidArgument, "mapName %q is not valid", mapName) + } + obj.UrlMap = PtrTo(fmt.Sprintf("https://www.googleapis.com/compute/beta/projects/%s/global/urlMaps/%s", mapName.Project.ID, mapName.Name)) + } + + if err := s.storage.Create(ctx, fqn, obj); err != nil { + return nil, err + } + + op := &pb.Operation{ + TargetId: obj.Id, + TargetLink: obj.SelfLink, + OperationType: PtrTo("insert"), + User: PtrTo("user@example.com"), + } + return s.startGlobalLRO(ctx, name.Project.ID, op, func() (proto.Message, error) { + return obj, nil + }) +} + +// Updates a TargetHttpsProxy resource in the specified project using the data included in the request. +// This method supports PATCH semantics and uses the JSON merge patch format and processing rules. +func (s *GlobalTargetHTTPSProxiesV1) Patch(ctx context.Context, req *pb.PatchTargetHttpsProxyRequest) (*pb.Operation, error) { + reqName := "projects/" + req.GetProject() + "/global" + "/targetHttpsProxies/" + req.GetTargetHttpsProxyResource().GetName() + name, err := s.parseGlobalTargetHttpsProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + obj := &pb.TargetHttpsProxy{} + if err := s.storage.Get(ctx, fqn, obj); err != nil { + return nil, err + } + + // TODO: Implement helper to implement the full rules here + proto.Merge(obj, req.GetTargetHttpsProxyResource()) + + if err := s.storage.Update(ctx, fqn, obj); err != nil { + return nil, err + } + + op := &pb.Operation{ + TargetId: obj.Id, + TargetLink: obj.SelfLink, + OperationType: PtrTo("patch"), + User: PtrTo("user@example.com"), + } + return s.startGlobalLRO(ctx, name.Project.ID, op, func() (proto.Message, error) { + return obj, nil + }) +} + +func (s *GlobalTargetHTTPSProxiesV1) SetUrlMap(ctx context.Context, req *pb.SetUrlMapTargetHttpsProxyRequest) (*pb.Operation, error) { + reqName := "projects/" + req.GetProject() + "/global" + "/targetHttpsProxies/" + req.GetTargetHttpsProxy() + name, err := s.parseGlobalTargetHttpsProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + obj := &pb.TargetHttpsProxy{} + if err := s.storage.Get(ctx, fqn, obj); err != nil { + return nil, err + } + + if obj.UrlMap != nil { + mapName, err := s.parseGlobalUrlMapName(req.GetUrlMapReferenceResource().GetUrlMap()) + if err != nil { + return nil, status.Errorf(codes.InvalidArgument, "mapName %q is not valid", mapName) + } + obj.UrlMap = PtrTo(fmt.Sprintf("https://www.googleapis.com/compute/beta/projects/%s/global/urlMaps/%s", mapName.Project.ID, mapName.Name)) + } + + if err := s.storage.Update(ctx, fqn, obj); err != nil { + return nil, err + } + + op := &pb.Operation{ + TargetId: obj.Id, + TargetLink: obj.SelfLink, + OperationType: PtrTo("SetUrlMap"), + User: PtrTo("user@example.com"), + } + return s.startGlobalLRO(ctx, name.Project.ID, op, func() (proto.Message, error) { + return obj, nil + }) +} + +func (s *GlobalTargetHTTPSProxiesV1) SetQuicOverride(ctx context.Context, req *pb.SetQuicOverrideTargetHttpsProxyRequest) (*pb.Operation, error) { + reqName := "projects/" + req.GetProject() + "/global" + "/targetHttpsProxies/" + req.GetTargetHttpsProxy() + name, err := s.parseGlobalTargetHttpsProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + obj := &pb.TargetHttpsProxy{} + if err := s.storage.Get(ctx, fqn, obj); err != nil { + return nil, err + } + + obj.QuicOverride = req.GetTargetHttpsProxiesSetQuicOverrideRequestResource().QuicOverride + + if err := s.storage.Update(ctx, fqn, obj); err != nil { + return nil, err + } + + op := &pb.Operation{ + TargetId: obj.Id, + TargetLink: obj.SelfLink, + OperationType: PtrTo("compute.targetHttpsProxies.setQuicOverride"), + User: PtrTo("user@example.com"), + } + return s.startGlobalLRO(ctx, name.Project.ID, op, func() (proto.Message, error) { + return obj, nil + }) +} + +func (s *GlobalTargetHTTPSProxiesV1) Delete(ctx context.Context, req *pb.DeleteTargetHttpsProxyRequest) (*pb.Operation, error) { + reqName := "projects/" + req.GetProject() + "/global" + "/targetHttpsProxies/" + req.GetTargetHttpsProxy() + name, err := s.parseGlobalTargetHttpsProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + deleted := &pb.TargetHttpsProxy{} + if err := s.storage.Delete(ctx, fqn, deleted); err != nil { + return nil, err + } + + op := &pb.Operation{ + TargetId: deleted.Id, + TargetLink: deleted.SelfLink, + OperationType: PtrTo("delete"), + User: PtrTo("user@example.com"), + } + return s.startGlobalLRO(ctx, name.Project.ID, op, func() (proto.Message, error) { + return deleted, nil + }) +} + +type globalTargetHttpsProxyName struct { + Project *projects.ProjectData + Name string +} + +func (n *globalTargetHttpsProxyName) String() string { + return "projects/" + n.Project.ID + "/global" + "/targetHttpsProxies/" + n.Name +} + +// parseGlobalTargetHttpsProxyName parses a string into a globalTargetHttpsProxyName. +// The expected form is `projects/*/regions/*/targetHttpsproxy/*`. +func (s *MockService) parseGlobalTargetHttpsProxyName(name string) (*globalTargetHttpsProxyName, error) { + tokens := strings.Split(name, "/") + + if len(tokens) == 5 && tokens[0] == "projects" && tokens[2] == "global" && tokens[3] == "targetHttpsProxies" { + project, err := s.Projects.GetProjectByID(tokens[1]) + if err != nil { + return nil, err + } + + name := &globalTargetHttpsProxyName{ + Project: project, + Name: tokens[4], + } + + return name, nil + } else { + return nil, status.Errorf(codes.InvalidArgument, "name %q is not valid", name) + } +} diff --git a/mockgcp/mockcompute/globaltargettcpproxyv1.go b/mockgcp/mockcompute/globaltargettcpproxyv1.go new file mode 100644 index 0000000000..3c2734bd91 --- /dev/null +++ b/mockgcp/mockcompute/globaltargettcpproxyv1.go @@ -0,0 +1,166 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mockcompute + +import ( + "context" + "strings" + + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common/projects" + pb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/compute/v1" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +type GlobalTargetTcpProxyV1 struct { + *MockService + pb.UnimplementedTargetTcpProxiesServer +} + +func (s *GlobalTargetTcpProxyV1) Get(ctx context.Context, req *pb.GetTargetTcpProxyRequest) (*pb.TargetTcpProxy, error) { + reqName := "projects/" + req.GetProject() + "/global/targetTcpProxies/" + req.GetTargetTcpProxy() + name, err := s.parseTargetTcpProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + obj := &pb.TargetTcpProxy{} + if err := s.storage.Get(ctx, fqn, obj); err != nil { + return nil, err + } + + return obj, nil +} + +func (s *GlobalTargetTcpProxyV1) Insert(ctx context.Context, req *pb.InsertTargetTcpProxyRequest) (*pb.Operation, error) { + reqName := "projects/" + req.GetProject() + "/global/targetTcpProxies/" + req.GetTargetTcpProxyResource().GetName() + name, err := s.parseTargetTcpProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + id := s.generateID() + + obj := proto.Clone(req.GetTargetTcpProxyResource()).(*pb.TargetTcpProxy) + obj.SelfLink = PtrTo("https://www.googleapis.com/compute/v1/" + name.String()) + obj.CreationTimestamp = PtrTo(s.nowString()) + obj.Id = &id + obj.Kind = PtrTo("compute#targetTcpProxy") + + if err := s.storage.Create(ctx, fqn, obj); err != nil { + return nil, err + } + + op := &pb.Operation{ + TargetId: obj.Id, + TargetLink: obj.SelfLink, + OperationType: PtrTo("insert"), + User: PtrTo("user@example.com"), + } + return s.startGlobalLRO(ctx, name.Project.ID, op, func() (proto.Message, error) { + return obj, nil + }) +} + +func (s *GlobalTargetTcpProxyV1) Delete(ctx context.Context, req *pb.DeleteTargetTcpProxyRequest) (*pb.Operation, error) { + reqName := "projects/" + req.GetProject() + "/global/targetTcpProxies/" + req.GetTargetTcpProxy() + name, err := s.parseTargetTcpProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + deleted := &pb.TargetTcpProxy{} + if err := s.storage.Delete(ctx, fqn, deleted); err != nil { + return nil, err + } + + op := &pb.Operation{ + TargetId: deleted.Id, + TargetLink: deleted.SelfLink, + OperationType: PtrTo("delete"), + User: PtrTo("user@example.com"), + } + return s.startGlobalLRO(ctx, name.Project.ID, op, func() (proto.Message, error) { + return deleted, nil + }) +} + +func (s *GlobalTargetTcpProxyV1) SetProxyHeader(ctx context.Context, req *pb.SetProxyHeaderTargetTcpProxyRequest) (*pb.Operation, error) { + reqName := "projects/" + req.GetProject() + "/global/targetTcpProxies/" + req.GetTargetTcpProxy() + name, err := s.parseTargetTcpProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + obj := &pb.TargetTcpProxy{} + if err := s.storage.Get(ctx, fqn, obj); err != nil { + return nil, err + } + + obj.ProxyHeader = req.GetTargetTcpProxiesSetProxyHeaderRequestResource().ProxyHeader + if err := s.storage.Update(ctx, fqn, obj); err != nil { + return nil, err + } + + op := &pb.Operation{ + TargetId: obj.Id, + TargetLink: obj.SelfLink, + OperationType: PtrTo("setProxyHeader"), + User: PtrTo("user@example.com"), + } + return s.startGlobalLRO(ctx, name.Project.ID, op, func() (proto.Message, error) { + return obj, nil + }) +} + +type targetTcpProxyName struct { + Project *projects.ProjectData + Name string +} + +func (n *targetTcpProxyName) String() string { + return "projects/" + n.Project.ID + "/global/targetTcpProxies/" + n.Name +} + +// parseTargetTcpProxyName parses a string into a targetTcpProxyName. +// The expected form is `projects/*/global/targetTcpProxies/*`. +func (s *MockService) parseTargetTcpProxyName(name string) (*targetTcpProxyName, error) { + tokens := strings.Split(name, "/") + + if len(tokens) == 5 && tokens[0] == "projects" && tokens[3] == "targetTcpProxies" { + project, err := s.Projects.GetProjectByID(tokens[1]) + if err != nil { + return nil, err + } + + name := &targetTcpProxyName{ + Project: project, + Name: tokens[4], + } + + return name, nil + } else { + return nil, status.Errorf(codes.InvalidArgument, "name %q is not valid", name) + } +} diff --git a/mockgcp/mockcompute/regionaladdress.go b/mockgcp/mockcompute/regionaladdress.go index e1960f50ca..0f990bbd67 100644 --- a/mockgcp/mockcompute/regionaladdress.go +++ b/mockgcp/mockcompute/regionaladdress.go @@ -69,10 +69,18 @@ func (s *RegionalAddressesV1) Insert(ctx context.Context, req *pb.InsertAddressR } if err := s.storage.Create(ctx, fqn, obj); err != nil { - return nil, status.Errorf(codes.Internal, "error creating address: %v", err) + return nil, err } - return s.newLRO(ctx, name.Project.ID) + op := &pb.Operation{ + TargetId: obj.Id, + TargetLink: obj.SelfLink, + OperationType: PtrTo("insert"), + User: PtrTo("user@example.com"), + } + return s.startRegionalLRO(ctx, name.Project.ID, name.Region, op, func() (proto.Message, error) { + return obj, nil + }) } func (s *RegionalAddressesV1) Delete(ctx context.Context, req *pb.DeleteAddressRequest) (*pb.Operation, error) { @@ -89,7 +97,15 @@ func (s *RegionalAddressesV1) Delete(ctx context.Context, req *pb.DeleteAddressR return nil, err } - return s.newLRO(ctx, name.Project.ID) + op := &pb.Operation{ + TargetId: deleted.Id, + TargetLink: deleted.SelfLink, + OperationType: PtrTo("delete"), + User: PtrTo("user@example.com"), + } + return s.startRegionalLRO(ctx, name.Project.ID, name.Region, op, func() (proto.Message, error) { + return deleted, nil + }) } func (s *RegionalAddressesV1) SetLabels(ctx context.Context, req *pb.SetLabelsAddressRequest) (*pb.Operation, error) { @@ -121,7 +137,7 @@ type regionalAddressName struct { } func (n *regionalAddressName) String() string { - return "projects/" + n.Project.ID + "/regions/" + n.Region + "/networks/" + n.Name + return "projects/" + n.Project.ID + "/regions/" + n.Region + "/addresses/" + n.Name } // parseAddressName parses a string into a addressName. diff --git a/mockgcp/mockcompute/regionalsslcertificatesv1.go b/mockgcp/mockcompute/regionalsslcertificatesv1.go new file mode 100644 index 0000000000..ebfdef56c1 --- /dev/null +++ b/mockgcp/mockcompute/regionalsslcertificatesv1.go @@ -0,0 +1,138 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mockcompute + +import ( + "context" + "strings" + + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common/projects" + pb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/compute/v1" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +type RegionalSSLCertificatesV1 struct { + *MockService + pb.UnimplementedRegionSslCertificatesServer +} + +func (s *RegionalSSLCertificatesV1) Get(ctx context.Context, req *pb.GetRegionSslCertificateRequest) (*pb.SslCertificate, error) { + reqName := "projects/" + req.GetProject() + "/regions/" + req.Region + "/sslCertificates/" + req.GetSslCertificate() + name, err := s.parseRegionalSslCertificateName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + obj := &pb.SslCertificate{} + if err := s.storage.Get(ctx, fqn, obj); err != nil { + return nil, err + } + + return obj, nil +} + +func (s *RegionalSSLCertificatesV1) Insert(ctx context.Context, req *pb.InsertRegionSslCertificateRequest) (*pb.Operation, error) { + reqName := "projects/" + req.GetProject() + "/regions/" + req.GetRegion() + "/sslCertificates/" + req.GetSslCertificateResource().GetName() + name, err := s.parseRegionalSslCertificateName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + id := s.generateID() + + obj := proto.Clone(req.GetSslCertificateResource()).(*pb.SslCertificate) + obj.SelfLink = PtrTo("https://www.googleapis.com/compute/v1/" + name.String()) + obj.CreationTimestamp = PtrTo(s.nowString()) + obj.Id = &id + obj.Kind = PtrTo("compute#sslCertificate") + + if err := s.storage.Create(ctx, fqn, obj); err != nil { + return nil, err + } + + op := &pb.Operation{ + TargetId: obj.Id, + TargetLink: obj.SelfLink, + OperationType: PtrTo("insert"), + User: PtrTo("user@example.com"), + } + return s.startRegionalLRO(ctx, name.Project.ID, name.Region, op, func() (proto.Message, error) { + return obj, nil + }) +} + +func (s *RegionalSSLCertificatesV1) Delete(ctx context.Context, req *pb.DeleteRegionSslCertificateRequest) (*pb.Operation, error) { + reqName := "projects/" + req.GetProject() + "/regions/" + req.GetRegion() + "/sslCertificates/" + req.GetSslCertificate() + name, err := s.parseRegionalSslCertificateName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + deleted := &pb.SslCertificate{} + if err := s.storage.Delete(ctx, fqn, deleted); err != nil { + return nil, err + } + + op := &pb.Operation{ + TargetId: deleted.Id, + TargetLink: deleted.SelfLink, + OperationType: PtrTo("delete"), + User: PtrTo("user@example.com"), + } + return s.startRegionalLRO(ctx, name.Project.ID, name.Region, op, func() (proto.Message, error) { + return deleted, nil + }) +} + +type regionalSSLCertificateName struct { + Project *projects.ProjectData + Region string + Name string +} + +func (n *regionalSSLCertificateName) String() string { + return "projects/" + n.Project.ID + "/regions/" + n.Region + "/sslCertificates/" + n.Name +} + +// parseRegionalSslCertificateName parses a string into a regionalSSLCertificateName. +// The expected form is `projects/*/regions/*/sslcertificate/*`. +func (s *MockService) parseRegionalSslCertificateName(name string) (*regionalSSLCertificateName, error) { + tokens := strings.Split(name, "/") + + if len(tokens) == 6 && tokens[0] == "projects" && tokens[2] == "regions" && tokens[4] == "sslCertificates" { + project, err := s.Projects.GetProjectByID(tokens[1]) + if err != nil { + return nil, err + } + + name := ®ionalSSLCertificateName{ + Project: project, + Region: tokens[3], + Name: tokens[5], + } + + return name, nil + } + + return nil, status.Errorf(codes.InvalidArgument, "name %q is not valid", name) +} diff --git a/mockgcp/mockcompute/regionaltargethttpsproxiesv1.go b/mockgcp/mockcompute/regionaltargethttpsproxiesv1.go new file mode 100644 index 0000000000..13e24c6d77 --- /dev/null +++ b/mockgcp/mockcompute/regionaltargethttpsproxiesv1.go @@ -0,0 +1,218 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mockcompute + +import ( + "context" + "fmt" + "strings" + + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common/projects" + pb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/compute/v1" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +type RegionalTargetHTTPSProxiesV1 struct { + *MockService + pb.UnimplementedRegionTargetHttpsProxiesServer +} + +func (s *RegionalTargetHTTPSProxiesV1) Get(ctx context.Context, req *pb.GetRegionTargetHttpsProxyRequest) (*pb.TargetHttpsProxy, error) { + reqName := "projects/" + req.GetProject() + "/regions/" + req.GetRegion() + "/targetHttpsProxies/" + req.GetTargetHttpsProxy() + name, err := s.parseRegionalTargetHttpsProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + obj := &pb.TargetHttpsProxy{} + if err := s.storage.Get(ctx, fqn, obj); err != nil { + return nil, err + } + + return obj, nil +} + +func (s *RegionalTargetHTTPSProxiesV1) Insert(ctx context.Context, req *pb.InsertRegionTargetHttpsProxyRequest) (*pb.Operation, error) { + reqName := "projects/" + req.GetProject() + "/regions/" + req.GetRegion() + "/targetHttpsProxies/" + req.GetTargetHttpsProxyResource().GetName() + name, err := s.parseRegionalTargetHttpsProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + id := s.generateID() + + obj := proto.Clone(req.GetTargetHttpsProxyResource()).(*pb.TargetHttpsProxy) + obj.SelfLink = PtrTo("https://www.googleapis.com/compute/v1/" + name.String()) + obj.CreationTimestamp = PtrTo(s.nowString()) + obj.Id = &id + obj.Kind = PtrTo("compute#targetHttpsProxy") + + if obj.Fingerprint == nil { + obj.Fingerprint = PtrTo(computeFingerprint(obj)) + } + + if obj.SslCertificates != nil { + var certs []string + for _, cert := range obj.GetSslCertificates() { + // todo(yuhou): this is a strange design of TF/GCP API. + // GCP field `sslCertificates` refers to SSL Certificate resource or Certificate Manager Certificate resource, + // Mixing Classic Certificates and Certificate Manager Certificates is not allowed. + // TF handled it by adding a new field `certificateManagerCertificates` and using `conflictWith` to avoid the mixed values. + // ref: https://github.com/hashicorp/terraform-provider-google/blob/31e35e8baaee132be5e25cd5d4740b9ac920dd57/google/services/compute/resource_compute_target_https_proxy.go#L1073s + if strings.Contains(cert, "certificates") { + cert := strings.TrimPrefix(cert, "https://certificatemanager.googleapis.com/v1/") + tokens := strings.Split(cert, "/") + if len(tokens) == 6 && tokens[0] == "projects" && tokens[2] == "locations" && tokens[4] == "certificates" { + } else { + return nil, status.Errorf(codes.InvalidArgument, "certificateManagerCertificate %q is not valid", cert) + } + certs = append(certs, fmt.Sprintf("//certificatemanager.googleapis.com/projects/%s/locations/%s/certificates/%s", tokens[1], tokens[3], tokens[5])) + + } else { + sslCertName, err := s.parseRegionalSslCertificateName(cert) + if err != nil { + return nil, status.Errorf(codes.InvalidArgument, "sslCertName %q is not valid", sslCertName) + } + certs = append(certs, fmt.Sprintf("https://www.googleapis.com/compute/beta/projects/%s/regions/%s/sslCertificates/%s", sslCertName.Project.ID, sslCertName.Region, sslCertName.Name)) + } + obj.SslCertificates = certs + } + } + + if obj.UrlMap != nil { + mapName, err := s.parseRegionalUrlMapName(obj.GetUrlMap()) + if err != nil { + return nil, status.Errorf(codes.InvalidArgument, "mapName %q is not valid", mapName) + } + obj.UrlMap = PtrTo(fmt.Sprintf("https://www.googleapis.com/compute/beta/projects/%s/regions/%s/urlMaps/%s", mapName.Project.ID, mapName.Region, mapName.Name)) + } + obj.Region = PtrTo(fmt.Sprintf("https://www.googleapis.com/compute/beta/projects/${projectId}/regions/%s", name.Region)) + + if err := s.storage.Create(ctx, fqn, obj); err != nil { + return nil, err + } + + op := &pb.Operation{ + TargetId: obj.Id, + TargetLink: obj.SelfLink, + OperationType: PtrTo("insert"), + User: PtrTo("user@example.com"), + } + return s.startRegionalLRO(ctx, name.Project.ID, name.Region, op, func() (proto.Message, error) { + return obj, nil + }) +} + +func (s *RegionalTargetHTTPSProxiesV1) SetUrlMap(ctx context.Context, req *pb.SetUrlMapRegionTargetHttpsProxyRequest) (*pb.Operation, error) { + reqName := "projects/" + req.GetProject() + "/regions/" + req.GetRegion() + "/targetHttpsProxies/" + req.GetTargetHttpsProxy() + name, err := s.parseRegionalTargetHttpsProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + obj := &pb.TargetHttpsProxy{} + if err := s.storage.Get(ctx, fqn, obj); err != nil { + return nil, err + } + + obj.UrlMap = req.GetUrlMapReferenceResource().UrlMap + + if obj.UrlMap != nil { + mapName, err := s.parseRegionalUrlMapName(obj.GetUrlMap()) + if err != nil { + return nil, status.Errorf(codes.InvalidArgument, "mapName %q is not valid", mapName) + } + obj.UrlMap = PtrTo(fmt.Sprintf("https://www.googleapis.com/compute/beta/projects/%s/regions/%s/urlMaps/%s", mapName.Project.ID, mapName.Region, mapName.Name)) + } + + if err := s.storage.Update(ctx, fqn, obj); err != nil { + return nil, err + } + + op := &pb.Operation{ + TargetId: obj.Id, + TargetLink: obj.SelfLink, + OperationType: PtrTo("SetUrlMap"), + User: PtrTo("user@example.com"), + } + return s.startRegionalLRO(ctx, name.Project.ID, name.Region, op, func() (proto.Message, error) { + return obj, nil + }) +} + +func (s *RegionalTargetHTTPSProxiesV1) Delete(ctx context.Context, req *pb.DeleteRegionTargetHttpsProxyRequest) (*pb.Operation, error) { + reqName := "projects/" + req.GetProject() + "/regions/" + req.GetRegion() + "/targetHttpsProxies/" + req.GetTargetHttpsProxy() + name, err := s.parseRegionalTargetHttpsProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + deleted := &pb.TargetHttpsProxy{} + if err := s.storage.Delete(ctx, fqn, deleted); err != nil { + return nil, err + } + + op := &pb.Operation{ + TargetId: deleted.Id, + TargetLink: deleted.SelfLink, + OperationType: PtrTo("delete"), + User: PtrTo("user@example.com"), + } + return s.startRegionalLRO(ctx, name.Project.ID, name.Region, op, func() (proto.Message, error) { + return deleted, nil + }) +} + +type regionalTargetHttpsProxyName struct { + Project *projects.ProjectData + Region string + Name string +} + +func (n *regionalTargetHttpsProxyName) String() string { + return "projects/" + n.Project.ID + "/regions/" + n.Region + "/targetHttpsProxies/" + n.Name +} + +// parseRegionalTargetHttpsProxyName parses a string into a targethttpsproxyName. +// The expected form is `projects/*/regions/*/targethttpsproxy/*`. +func (s *MockService) parseRegionalTargetHttpsProxyName(name string) (*regionalTargetHttpsProxyName, error) { + tokens := strings.Split(name, "/") + + if len(tokens) == 6 && tokens[0] == "projects" && tokens[2] == "regions" && tokens[4] == "targetHttpsProxies" { + project, err := s.Projects.GetProjectByID(tokens[1]) + if err != nil { + return nil, err + } + + name := ®ionalTargetHttpsProxyName{ + Project: project, + Region: tokens[3], + Name: tokens[5], + } + + return name, nil + } else { + return nil, status.Errorf(codes.InvalidArgument, "name %q is not valid", name) + } +} diff --git a/mockgcp/mockcompute/service.go b/mockgcp/mockcompute/service.go index 9c231ad47d..0dc6a97fc9 100644 --- a/mockgcp/mockcompute/service.go +++ b/mockgcp/mockcompute/service.go @@ -59,6 +59,9 @@ func (s *MockService) Register(grpcServer *grpc.Server) { pb.RegisterTargetHttpProxiesServer(grpcServer, &GlobalTargetHTTPProxiesV1{MockService: s}) pb.RegisterRegionTargetHttpProxiesServer(grpcServer, &RegionalTargetHTTPProxiesV1{MockService: s}) + pb.RegisterTargetHttpsProxiesServer(grpcServer, &GlobalTargetHTTPSProxiesV1{MockService: s}) + pb.RegisterRegionTargetHttpsProxiesServer(grpcServer, &RegionalTargetHTTPSProxiesV1{MockService: s}) + pb.RegisterUrlMapsServer(grpcServer, &GlobalURLMapsV1{MockService: s}) pb.RegisterRegionUrlMapsServer(grpcServer, &RegionalURLMapsV1{MockService: s}) @@ -80,6 +83,9 @@ func (s *MockService) Register(grpcServer *grpc.Server) { pb.RegisterAddressesServer(grpcServer, &RegionalAddressesV1{MockService: s}) pb.RegisterGlobalAddressesServer(grpcServer, &GlobalAddressesV1{MockService: s}) pb.RegisterSslCertificatesServer(grpcServer, &GlobalSSLCertificatesV1{MockService: s}) + pb.RegisterRegionSslCertificatesServer(grpcServer, &RegionalSSLCertificatesV1{MockService: s}) + pb.RegisterTargetSslProxiesServer(grpcServer, &TargetSslProxyV1{MockService: s}) + pb.RegisterTargetTcpProxiesServer(grpcServer, &GlobalTargetTcpProxyV1{MockService: s}) pb.RegisterServiceAttachmentsServer(grpcServer, &RegionalServiceAttachmentV1{MockService: s}) @@ -127,6 +133,21 @@ func (s *MockService) NewHTTPMux(ctx context.Context, conn *grpc.ClientConn) (ht if err := pb.RegisterRegionTargetHttpProxiesHandler(ctx, mux.ServeMux, conn); err != nil { return nil, err } + if err := pb.RegisterTargetHttpsProxiesHandler(ctx, mux.ServeMux, conn); err != nil { + return nil, err + } + if err := pb.RegisterRegionTargetHttpsProxiesHandler(ctx, mux.ServeMux, conn); err != nil { + return nil, err + } + if err := pb.RegisterTargetSslProxiesHandler(ctx, mux.ServeMux, conn); err != nil { + return nil, err + } + if err := pb.RegisterTargetTcpProxiesHandler(ctx, mux.ServeMux, conn); err != nil { + return nil, err + } + if err := pb.RegisterRegionTargetTcpProxiesHandler(ctx, mux.ServeMux, conn); err != nil { + return nil, err + } if err := pb.RegisterUrlMapsHandler(ctx, mux.ServeMux, conn); err != nil { return nil, err @@ -177,10 +198,13 @@ func (s *MockService) NewHTTPMux(ctx context.Context, conn *grpc.ClientConn) (ht return nil, err } - // for global ssl certs and the managedsslcerts + // for ssl certs and the managedsslcerts if err := pb.RegisterSslCertificatesHandler(ctx, mux.ServeMux, conn); err != nil { return nil, err } + if err := pb.RegisterRegionSslCertificatesHandler(ctx, mux.ServeMux, conn); err != nil { + return nil, err + } if err := pb.RegisterServiceAttachmentsHandler(ctx, mux.ServeMux, conn); err != nil { return nil, err diff --git a/mockgcp/mockcompute/targetsslproxyv1.go b/mockgcp/mockcompute/targetsslproxyv1.go new file mode 100644 index 0000000000..cf0f0b4217 --- /dev/null +++ b/mockgcp/mockcompute/targetsslproxyv1.go @@ -0,0 +1,136 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mockcompute + +import ( + "context" + "strings" + + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common/projects" + pb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/compute/v1" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +type TargetSslProxyV1 struct { + *MockService + pb.UnimplementedTargetSslProxiesServer +} + +func (s *TargetSslProxyV1) Get(ctx context.Context, req *pb.GetTargetSslProxyRequest) (*pb.TargetSslProxy, error) { + reqName := "projects/" + req.GetProject() + "/global/targetSslProxies/" + req.GetTargetSslProxy() + name, err := s.parseTargetSslProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + obj := &pb.TargetSslProxy{} + if err := s.storage.Get(ctx, fqn, obj); err != nil { + return nil, err + } + + return obj, nil +} + +func (s *TargetSslProxyV1) Insert(ctx context.Context, req *pb.InsertTargetSslProxyRequest) (*pb.Operation, error) { + reqName := "projects/" + req.GetProject() + "/global/targetSslProxies/" + req.GetTargetSslProxyResource().GetName() + name, err := s.parseTargetSslProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + id := s.generateID() + + obj := proto.Clone(req.GetTargetSslProxyResource()).(*pb.TargetSslProxy) + obj.SelfLink = PtrTo("https://www.googleapis.com/compute/v1/" + name.String()) + obj.CreationTimestamp = PtrTo(s.nowString()) + obj.Id = &id + obj.Kind = PtrTo("compute#targetSslProxy") + + if err := s.storage.Create(ctx, fqn, obj); err != nil { + return nil, err + } + + op := &pb.Operation{ + TargetId: obj.Id, + TargetLink: obj.SelfLink, + OperationType: PtrTo("insert"), + User: PtrTo("user@example.com"), + } + return s.startGlobalLRO(ctx, name.Project.ID, op, func() (proto.Message, error) { + return obj, nil + }) +} + +func (s *TargetSslProxyV1) Delete(ctx context.Context, req *pb.DeleteTargetSslProxyRequest) (*pb.Operation, error) { + reqName := "projects/" + req.GetProject() + "/global/targetSslProxies/" + req.GetTargetSslProxy() + name, err := s.parseTargetSslProxyName(reqName) + if err != nil { + return nil, err + } + + fqn := name.String() + + deleted := &pb.TargetSslProxy{} + if err := s.storage.Delete(ctx, fqn, deleted); err != nil { + return nil, err + } + + op := &pb.Operation{ + TargetId: deleted.Id, + TargetLink: deleted.SelfLink, + OperationType: PtrTo("delete"), + User: PtrTo("user@example.com"), + } + return s.startGlobalLRO(ctx, name.Project.ID, op, func() (proto.Message, error) { + return deleted, nil + }) +} + +type targetSslProxyName struct { + Project *projects.ProjectData + Name string +} + +func (n *targetSslProxyName) String() string { + return "projects/" + n.Project.ID + "/global/targetSslProxies/" + n.Name +} + +// parseTargetSslProxyName parses a string into a targetSslProxyName. +// The expected form is `projects/*/global/targetSslProxies/*`. +func (s *MockService) parseTargetSslProxyName(name string) (*targetSslProxyName, error) { + tokens := strings.Split(name, "/") + + if len(tokens) == 5 && tokens[0] == "projects" && tokens[3] == "targetSslProxies" { + project, err := s.Projects.GetProjectByID(tokens[1]) + if err != nil { + return nil, err + } + + name := &targetSslProxyName{ + Project: project, + Name: tokens[4], + } + + return name, nil + } else { + return nil, status.Errorf(codes.InvalidArgument, "name %q is not valid", name) + } +} diff --git a/mockgcp/mockfirestore/database.go b/mockgcp/mockfirestore/database.go new file mode 100644 index 0000000000..6691120d45 --- /dev/null +++ b/mockgcp/mockfirestore/database.go @@ -0,0 +1,168 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mockfirestore + +import ( + "context" + "crypto/md5" + "encoding/base64" + "fmt" + "time" + + "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/anypb" + "google.golang.org/protobuf/types/known/durationpb" + "google.golang.org/protobuf/types/known/timestamppb" + + pb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/firestore/admin/v1" +) + +type DatabaseService struct { + *MockService + pb.UnimplementedFirestoreAdminServer +} + +func (s *DatabaseService) GetDatabase(ctx context.Context, req *pb.GetDatabaseRequest) (*pb.Database, error) { + fqn := req.GetName() + + obj := &pb.Database{} + if err := s.storage.Get(ctx, fqn, obj); err != nil { + if status.Code(err) == codes.NotFound { + return nil, status.Errorf(codes.NotFound, "Requested entity was not found.") + } + return nil, err + } + + return obj, nil +} + +func (s *DatabaseService) CreateDatabase(ctx context.Context, req *pb.CreateDatabaseRequest) (*longrunningpb.Operation, error) { + fqn := req.GetDatabase().GetName() + + obj := proto.Clone(req.Database).(*pb.Database) + populateDefaultsForDatabase(obj) + t := timestamppb.New(time.Now()) + obj.CreateTime = t + obj.UpdateTime = t + obj.EarliestVersionTime = t + if err := s.storage.Create(ctx, fqn, obj); err != nil { + return nil, err + } + + metadata := &pb.CreateDatabaseMetadata{} + op, err := s.operations.StartLRO(ctx, fqn, metadata, func() (proto.Message, error) { + result := proto.Clone(obj).(*pb.Database) + return result, nil + }) + if err != nil { + return op, err + } + response, err := anypb.New(obj) + if err != nil { + return op, err + } + op.Result = &longrunningpb.Operation_Response{ + Response: response, + } + return op, err +} + +func (s *DatabaseService) UpdateDatabase(ctx context.Context, req *pb.UpdateDatabaseRequest) (*longrunningpb.Operation, error) { + fqn := req.GetDatabase().GetName() + + existing := &pb.Database{} + if err := s.storage.Get(ctx, fqn, existing); err != nil { + return nil, err + } + + updated := proto.Clone(req.Database).(*pb.Database) + populateDefaultsForDatabase(updated) + updated.UpdateTime = timestamppb.New(time.Now()) + if err := s.storage.Update(ctx, fqn, updated); err != nil { + return nil, err + } + + metadata := &pb.UpdateDatabaseMetadata{} + op, err := s.operations.StartLRO(ctx, fqn, metadata, func() (proto.Message, error) { + result := proto.Clone(updated).(*pb.Database) + return result, nil + }) + if err != nil { + return op, err + } + response, err := anypb.New(updated) + if err != nil { + return op, err + } + op.Result = &longrunningpb.Operation_Response{ + Response: response, + } + return op, err +} + +func (s *DatabaseService) DeleteDatabase(ctx context.Context, req *pb.DeleteDatabaseRequest) (*longrunningpb.Operation, error) { + fqn := req.GetName() + + deleted := &pb.Database{} + if err := s.storage.Delete(ctx, fqn, deleted); err != nil { + return nil, err + } + + metadata := &pb.DeleteDatabaseMetadata{} + op, err := s.operations.StartLRO(ctx, fqn, metadata, func() (proto.Message, error) { + return &pb.Database{}, nil + }) + if err != nil { + return op, err + } + response, err := anypb.New(deleted) + if err != nil { + return op, err + } + op.Result = &longrunningpb.Operation_Response{ + Response: response, + } + return op, err +} + +func populateDefaultsForDatabase(obj *pb.Database) { + if obj.Uid == "" { + obj.Uid = fmt.Sprintf("%x", time.Now().UnixNano()) + } + if obj.ConcurrencyMode == pb.Database_CONCURRENCY_MODE_UNSPECIFIED { + obj.ConcurrencyMode = pb.Database_PESSIMISTIC + } + if obj.PointInTimeRecoveryEnablement == pb.Database_POINT_IN_TIME_RECOVERY_ENABLEMENT_UNSPECIFIED { + obj.PointInTimeRecoveryEnablement = pb.Database_POINT_IN_TIME_RECOVERY_DISABLED + } + if obj.PointInTimeRecoveryEnablement == pb.Database_POINT_IN_TIME_RECOVERY_DISABLED { + obj.VersionRetentionPeriod = durationpb.New(time.Hour) + } else if obj.PointInTimeRecoveryEnablement == pb.Database_POINT_IN_TIME_RECOVERY_ENABLED { + obj.VersionRetentionPeriod = durationpb.New(7 * 24 * time.Hour) + } + obj.Etag = computeEtag(obj) +} + +func computeEtag(obj proto.Message) string { + b, err := proto.Marshal(obj) + if err != nil { + panic(fmt.Sprintf("converting to proto: %v", err)) + } + hash := md5.Sum(b) + return base64.StdEncoding.EncodeToString(hash[:]) +} diff --git a/mockgcp/mockfirestore/service.go b/mockgcp/mockfirestore/service.go new file mode 100644 index 0000000000..5c0b0ac280 --- /dev/null +++ b/mockgcp/mockfirestore/service.go @@ -0,0 +1,72 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mockfirestore + +import ( + "context" + "net/http" + + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common" + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common/httpmux" + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common/operations" + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/pkg/storage" + "google.golang.org/grpc" + + pb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/firestore/admin/v1" +) + +// MockService represents a mocked apikeys service. +type MockService struct { + *common.MockEnvironment + storage storage.Storage + operations *operations.Operations +} + +// New creates a MockService. +func New(env *common.MockEnvironment, storage storage.Storage) *MockService { + s := &MockService{ + MockEnvironment: env, + storage: storage, + operations: operations.NewOperationsService(storage), + } + return s +} + +func (s *MockService) ExpectedHosts() []string { + return []string{"firestore.googleapis.com"} +} + +func (s *MockService) Register(grpcServer *grpc.Server) { + pb.RegisterFirestoreAdminServer(grpcServer, &DatabaseService{MockService: s}) +} + +func (s *MockService) NewHTTPMux(ctx context.Context, conn *grpc.ClientConn) (http.Handler, error) { + mux, err := httpmux.NewServeMux(ctx, conn, httpmux.Options{}, + pb.RegisterFirestoreAdminHandler, + s.operations.RegisterOperationsPath("/v1/{prefix=**}/operations/{name}")) + if err != nil { + return nil, err + } + + // Returns slightly non-standard errors + mux.RewriteError = func(ctx context.Context, error *httpmux.ErrorResponse) { + if error.Code == 404 { + error.Errors = nil + error.Message = "Project '${projectId}' or database 'firestoredatabase-${uniqueId}' does not exist." + } + } + + return mux, nil +} diff --git a/mockgcp/mockgkemulticloud/attachedcluster.go b/mockgcp/mockgkemulticloud/attachedcluster.go index b85b29e84f..4c1be6bafa 100644 --- a/mockgcp/mockgkemulticloud/attachedcluster.go +++ b/mockgcp/mockgkemulticloud/attachedcluster.go @@ -16,11 +16,15 @@ package mockgkemulticloud import ( "context" + "fmt" + "time" "google.golang.org/genproto/googleapis/longrunning" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/emptypb" + "google.golang.org/protobuf/types/known/timestamppb" pb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/gkemulticloud/v1" ) @@ -40,6 +44,9 @@ func (s *GKEMulticloudV1) GetAttachedCluster(ctx context.Context, req *pb.GetAtt obj := &pb.AttachedCluster{} if err := s.storage.Get(ctx, fqn, obj); err != nil { + if status.Code(err) == codes.NotFound { + return nil, status.Errorf(codes.NotFound, "Resource '%s' was not found", fqn) + } return nil, err } @@ -53,6 +60,7 @@ func (s *GKEMulticloudV1) CreateAttachedCluster(ctx context.Context, req *pb.Cre return nil, err } + now := time.Now() fqn := name.String() obj := proto.Clone(req.AttachedCluster).(*pb.AttachedCluster) @@ -62,7 +70,18 @@ func (s *GKEMulticloudV1) CreateAttachedCluster(ctx context.Context, req *pb.Cre return nil, err } - return s.operations.NewLRO(ctx) + opMetadata := &pb.OperationMetadata{ + CreateTime: timestamppb.New(now), + Verb: "create", + RequestedCancellation: false, + Target: fqn, + } + opPrefix := fmt.Sprintf("projects/%s/locations/%s", name.Project.ID, name.Location) + return s.operations.StartLRO(ctx, opPrefix, opMetadata, func() (proto.Message, error) { + opMetadata.EndTime = timestamppb.Now() + obj.State = pb.AttachedCluster_RUNNING + return obj, nil + }) } func (s *GKEMulticloudV1) UpdateAttachedCluster(ctx context.Context, req *pb.UpdateAttachedClusterRequest) (*longrunning.Operation, error) { @@ -71,6 +90,7 @@ func (s *GKEMulticloudV1) UpdateAttachedCluster(ctx context.Context, req *pb.Upd return nil, err } + now := time.Now() fqn := name.String() obj := &pb.AttachedCluster{} if err := s.storage.Get(ctx, fqn, obj); err != nil { @@ -81,12 +101,13 @@ func (s *GKEMulticloudV1) UpdateAttachedCluster(ctx context.Context, req *pb.Upd // fields from // [AttachedCluster][mockgcp.cloud.gkemulticloud.v1.AttachedCluster]: // - // - `description`. // - `annotations`. - // - `platform_version`. // - `authorization.admin_users`. + // - `binary_authorization.evaluation_mode`. + // - `description`. // - `logging_config.component_config.enable_components`. // - `monitoring_config.managed_prometheus_config.enabled`. + // - `platform_version`. paths := req.GetUpdateMask().GetPaths() if len(paths) == 0 { @@ -96,8 +117,20 @@ func (s *GKEMulticloudV1) UpdateAttachedCluster(ctx context.Context, req *pb.Upd // TODO: Some sort of helper for fieldmask? for _, path := range paths { switch path { + case "annotations": + obj.Annotations = req.GetAttachedCluster().GetAnnotations() + case "authorization.admin_users": + obj.Authorization.AdminUsers = req.GetAttachedCluster().GetAuthorization().GetAdminUsers() + case "binary_authorization.evaluation_mode": + obj.BinaryAuthorization.EvaluationMode = req.GetAttachedCluster().GetBinaryAuthorization().GetEvaluationMode() case "description": obj.Description = req.GetAttachedCluster().GetDescription() + case "logging_config.component_config.enable_components": + obj.LoggingConfig.ComponentConfig.EnableComponents = req.GetAttachedCluster().GetLoggingConfig().GetComponentConfig().GetEnableComponents() + case "monitoring_config.managed_prometheus_config.enabled": + obj.MonitoringConfig = req.GetAttachedCluster().GetMonitoringConfig() + case "platformVersion": + obj.PlatformVersion = req.GetAttachedCluster().GetPlatformVersion() default: return nil, status.Errorf(codes.InvalidArgument, "update_mask path %q not valid", path) } @@ -106,7 +139,17 @@ func (s *GKEMulticloudV1) UpdateAttachedCluster(ctx context.Context, req *pb.Upd if err := s.storage.Update(ctx, fqn, obj); err != nil { return nil, err } - return s.operations.NewLRO(ctx) + opMetadata := &pb.OperationMetadata{ + CreateTime: timestamppb.New(now), + Verb: "update", + RequestedCancellation: false, + Target: fqn, + } + opPrefix := fmt.Sprintf("projects/%s/locations/%s", name.Project.ID, name.Location) + return s.operations.StartLRO(ctx, opPrefix, opMetadata, func() (proto.Message, error) { + opMetadata.EndTime = timestamppb.Now() + return obj, nil + }) } func (s *GKEMulticloudV1) DeleteAttachedCluster(ctx context.Context, req *pb.DeleteAttachedClusterRequest) (*longrunning.Operation, error) { @@ -115,6 +158,7 @@ func (s *GKEMulticloudV1) DeleteAttachedCluster(ctx context.Context, req *pb.Del return nil, err } + now := time.Now() fqn := name.String() oldObj := &pb.AttachedCluster{} @@ -122,5 +166,15 @@ func (s *GKEMulticloudV1) DeleteAttachedCluster(ctx context.Context, req *pb.Del return nil, err } - return s.operations.NewLRO(ctx) + opMetadata := &pb.OperationMetadata{ + CreateTime: timestamppb.New(now), + Verb: "delete", + RequestedCancellation: false, + Target: fqn, + } + opPrefix := fmt.Sprintf("projects/%s/locations/%s", name.Project.ID, name.Location) + return s.operations.StartLRO(ctx, opPrefix, opMetadata, func() (proto.Message, error) { + opMetadata.EndTime = timestamppb.Now() + return &emptypb.Empty{}, nil + }) } diff --git a/mockgcp/mockgkemulticloud/service.go b/mockgcp/mockgkemulticloud/service.go index 958bac10fc..9971b840dc 100644 --- a/mockgcp/mockgkemulticloud/service.go +++ b/mockgcp/mockgkemulticloud/service.go @@ -18,10 +18,10 @@ import ( "context" "net/http" - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "google.golang.org/grpc" "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common" + "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common/httpmux" "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/common/operations" pb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/gkemulticloud/v1" "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/pkg/storage" @@ -57,11 +57,19 @@ func (s *MockService) Register(grpcServer *grpc.Server) { } func (s *MockService) NewHTTPMux(ctx context.Context, conn *grpc.ClientConn) (http.Handler, error) { - mux := runtime.NewServeMux() - - if err := pb.RegisterAttachedClustersHandler(ctx, mux, conn); err != nil { + mux, err := httpmux.NewServeMux(ctx, conn, httpmux.Options{}, + pb.RegisterAttachedClustersHandler, + s.operations.RegisterOperationsPath("/v1/{prefix=**}/operations/{name}")) + if err != nil { return nil, err } + // Returns slightly non-standard errors + mux.RewriteError = func(ctx context.Context, error *httpmux.ErrorResponse) { + if error.Code == 404 { + error.Errors = nil + } + } + return mux, nil } diff --git a/mockgcp/mockkms/cryptokey.go b/mockgcp/mockkms/cryptokey.go index 3dbe6f8ce3..36525fa235 100644 --- a/mockgcp/mockkms/cryptokey.go +++ b/mockgcp/mockkms/cryptokey.go @@ -71,17 +71,42 @@ func (r *kmsServer) CreateCryptoKey(ctx context.Context, req *pb.CreateCryptoKey r.populateDefaultsForCryptoKey(name, obj) - if err := r.storage.Create(ctx, fqn, obj); err != nil { - return nil, err - } - if !req.SkipInitialVersionCreation { + var primary *pb.CryptoKeyVersion + + if obj.VersionTemplate != nil { + primary = &pb.CryptoKeyVersion{ + Algorithm: obj.VersionTemplate.Algorithm, + ProtectionLevel: obj.VersionTemplate.ProtectionLevel, + } + } else if req.GetCryptoKey().Purpose == pb.CryptoKey_ENCRYPT_DECRYPT { + // Set default + primary = &pb.CryptoKeyVersion{ + Algorithm: pb.CryptoKeyVersion_GOOGLE_SYMMETRIC_ENCRYPTION, + ProtectionLevel: pb.ProtectionLevel_SOFTWARE, + } + } else { + primary = &pb.CryptoKeyVersion{ + // Algorithm is required + Algorithm: obj.VersionTemplate.Algorithm, + } + } createVersionReq := &pb.CreateCryptoKeyVersionRequest{ - Parent: fqn, + Parent: fqn, + CryptoKeyVersion: primary, } - if _, err := r.CreateCryptoKeyVersion(ctx, createVersionReq); err != nil { + createdVersion, err := r.CreateCryptoKeyVersion(ctx, createVersionReq) + if err != nil { return nil, err } + obj.Primary = createdVersion + obj.VersionTemplate = &pb.CryptoKeyVersionTemplate{ + Algorithm: createdVersion.Algorithm, + ProtectionLevel: createdVersion.ProtectionLevel, + } + } + if err := r.storage.Create(ctx, fqn, obj); err != nil { + return nil, err } return obj, nil diff --git a/mockgcp/mockkms/cryptokeyversion.go b/mockgcp/mockkms/cryptokeyversion.go index 598a9c6c83..58542c6208 100644 --- a/mockgcp/mockkms/cryptokeyversion.go +++ b/mockgcp/mockkms/cryptokeyversion.go @@ -123,17 +123,13 @@ func (r *kmsServer) CreateCryptoKeyVersion(ctx context.Context, req *pb.CreateCr now := time.Now() var obj *pb.CryptoKeyVersion - if req.GetCryptoKeyVersion() == nil { - obj = &pb.CryptoKeyVersion{} - } else { - obj = proto.Clone(req.GetCryptoKeyVersion()).(*pb.CryptoKeyVersion) - } + obj = proto.Clone(req.GetCryptoKeyVersion()).(*pb.CryptoKeyVersion) obj.Name = fqn obj.CreateTime = timestamppb.New(now) obj.GenerateTime = timestamppb.New(now) - obj.ProtectionLevel = pb.ProtectionLevel_SOFTWARE obj.State = pb.CryptoKeyVersion_ENABLED - obj.Algorithm = pb.CryptoKeyVersion_EC_SIGN_P384_SHA384 + obj.Algorithm = req.CryptoKeyVersion.GetAlgorithm() + obj.ProtectionLevel = req.CryptoKeyVersion.GetProtectionLevel() if err := r.storage.Create(ctx, fqn, obj); err != nil { return nil, err diff --git a/mockgcp/mocksql/sqlinstance.go b/mockgcp/mocksql/sqlinstance.go index 21d34c5543..a882e45103 100644 --- a/mockgcp/mocksql/sqlinstance.go +++ b/mockgcp/mocksql/sqlinstance.go @@ -95,13 +95,9 @@ func (s *sqlInstancesService) Insert(ctx context.Context, req *pb.SqlInstancesIn fqn := name.String() now := time.Now() - region := "us-central1" - zone := "us-central1-a" - obj := proto.Clone(req.GetBody()).(*pb.DatabaseInstance) obj.Name = name.InstanceName obj.Project = name.Project.ID - obj.Region = region obj.SelfLink = fmt.Sprintf("https://sqladmin.googleapis.com/sql/v1beta4/projects/%s/instances/%s", name.Project.ID, name.InstanceName) @@ -112,8 +108,6 @@ func (s *sqlInstancesService) Insert(ctx context.Context, req *pb.SqlInstancesIn return nil, err } - obj.GceZone = zone - // By default, allocate a public IP for the instance. shouldAllocatePublicIP := true // By default, do not allocate a private IP for the instance. @@ -172,7 +166,9 @@ func (s *sqlInstancesService) Insert(ctx context.Context, req *pb.SqlInstancesIn obj.ServiceAccountEmailAddress = fmt.Sprintf("p%d-abcdef@gcp-sa-cloud-sql.iam.gserviceaccount.com", name.Project.Number) - populateDefaults(obj, zone) + populateDefaults(obj) + + obj.GceZone = obj.Settings.LocationPreference.Zone obj.Settings.SettingsVersion = wrapperspb.Int64(1) @@ -510,7 +506,7 @@ func setDatabaseVersionDefaults(obj *pb.DatabaseInstance) error { return nil } -func populateDefaults(obj *pb.DatabaseInstance, zone string) { +func populateDefaults(obj *pb.DatabaseInstance) { if obj.InstanceType == pb.SqlInstanceType_SQL_INSTANCE_TYPE_UNSPECIFIED { obj.InstanceType = pb.SqlInstanceType_CLOUD_SQL_INSTANCE } @@ -567,17 +563,20 @@ func populateDefaults(obj *pb.DatabaseInstance, zone string) { } setDefaultBool(&ipConfiguration.Ipv4Enabled, true) setDefaultBool(&ipConfiguration.RequireSsl, false) - if ipConfiguration.SslMode == 0 { - ipConfiguration.SslMode = pb.IpConfiguration_ALLOW_UNENCRYPTED_AND_ENCRYPTED + if ipConfiguration.SslMode == pb.IpConfiguration_SSL_MODE_UNSPECIFIED { + if ipConfiguration.RequireSsl.Value { + ipConfiguration.SslMode = pb.IpConfiguration_TRUSTED_CLIENT_CERTIFICATE_REQUIRED + } else { + ipConfiguration.SslMode = pb.IpConfiguration_ALLOW_UNENCRYPTED_AND_ENCRYPTED + } } - locationPreference := settings.LocationPreference - if locationPreference == nil { - locationPreference = &pb.LocationPreference{} - settings.LocationPreference = locationPreference + if settings.LocationPreference == nil { + settings.LocationPreference = &pb.LocationPreference{ + Kind: "sql#locationPreference", + Zone: obj.Region + "-a", + } } - locationPreference.Kind = "sql#locationPreference" - locationPreference.Zone = zone backupConfiguration := settings.BackupConfiguration if backupConfiguration == nil { @@ -735,7 +734,7 @@ func (s *sqlInstancesService) Update(ctx context.Context, req *pb.SqlInstancesUp obj.State = existing.State obj.UpgradableDatabaseVersions = existing.UpgradableDatabaseVersions - populateDefaults(obj, existing.GetSettings().GetLocationPreference().GetZone()) + populateDefaults(obj) obj.Settings.SettingsVersion = wrapperspb.Int64(existing.GetSettings().GetSettingsVersion().GetValue() + 1) diff --git a/operator/autopilot-channels/packages/configconnector/1.119.0/cluster/gcp-identity/0-cnrm-system.yaml b/operator/autopilot-channels/packages/configconnector/1.122.0/cluster/gcp-identity/0-cnrm-system.yaml similarity index 95% rename from operator/autopilot-channels/packages/configconnector/1.119.0/cluster/gcp-identity/0-cnrm-system.yaml rename to operator/autopilot-channels/packages/configconnector/1.122.0/cluster/gcp-identity/0-cnrm-system.yaml index 28c723f329..67d631c5a0 100644 --- a/operator/autopilot-channels/packages/configconnector/1.119.0/cluster/gcp-identity/0-cnrm-system.yaml +++ b/operator/autopilot-channels/packages/configconnector/1.122.0/cluster/gcp-identity/0-cnrm-system.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Namespace metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-system @@ -11,7 +11,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-controller-manager @@ -21,7 +21,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -31,7 +31,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-resource-stats-recorder @@ -41,7 +41,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-manager @@ -51,7 +51,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-cnrm-system-role @@ -72,7 +72,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-cnrm-system-role @@ -93,7 +93,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -1270,7 +1270,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role @@ -1320,7 +1320,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-cluster-role @@ -1378,7 +1378,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-ns-role @@ -1403,7 +1403,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-role @@ -1433,7 +1433,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -2221,7 +2221,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role @@ -2284,7 +2284,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role-binding @@ -2302,7 +2302,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role-binding @@ -2320,7 +2320,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-admin-binding @@ -2343,7 +2343,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-binding @@ -2360,7 +2360,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-binding @@ -2377,7 +2377,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-watcher-binding @@ -2394,7 +2394,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-binding @@ -2411,7 +2411,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-binding @@ -2428,7 +2428,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -2445,7 +2445,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "8888" prometheus.io/scrape: "true" labels: @@ -2467,7 +2467,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "48797" prometheus.io/scrape: "true" labels: @@ -2488,7 +2488,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2506,7 +2506,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2519,8 +2519,8 @@ spec: - /configconnector/recorder env: - name: CONFIG_CONNECTOR_VERSION - value: 1.119.0 - image: gcr.io/gke-release/cnrm/recorder:d63ad2a + value: 1.122.0 + image: gcr.io/gke-release/cnrm/recorder:e373e18 imagePullPolicy: Always name: recorder ports: @@ -2553,7 +2553,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2568,7 +2568,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2583,7 +2583,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: gcr.io/gke-release/cnrm/webhook:d63ad2a + image: gcr.io/gke-release/cnrm/webhook:e373e18 imagePullPolicy: Always name: webhook ports: @@ -2613,7 +2613,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/system: "true" @@ -2628,7 +2628,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/system: "true" @@ -2641,7 +2641,7 @@ spec: env: - name: GOOGLE_APPLICATION_CREDENTIALS value: /var/secrets/google/key.json - image: gcr.io/gke-release/cnrm/controller:d63ad2a + image: gcr.io/gke-release/cnrm/controller:e373e18 imagePullPolicy: Always name: manager ports: @@ -2678,7 +2678,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2693,7 +2693,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2701,7 +2701,7 @@ spec: containers: - command: - /configconnector/deletiondefender - image: gcr.io/gke-release/cnrm/deletiondefender:d63ad2a + image: gcr.io/gke-release/cnrm/deletiondefender:e373e18 imagePullPolicy: Always name: deletiondefender ports: @@ -2732,7 +2732,7 @@ kind: HorizontalPodAutoscaler metadata: annotations: autoscaling.alpha.kubernetes.io/metrics: '[{"type":"Resource","resource":{"name":"memory","targetAverageUtilization":70}}]' - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook diff --git a/operator/autopilot-channels/packages/configconnector/1.119.0/cluster/workload-identity/0-cnrm-system.yaml b/operator/autopilot-channels/packages/configconnector/1.122.0/cluster/workload-identity/0-cnrm-system.yaml similarity index 95% rename from operator/autopilot-channels/packages/configconnector/1.119.0/cluster/workload-identity/0-cnrm-system.yaml rename to operator/autopilot-channels/packages/configconnector/1.122.0/cluster/workload-identity/0-cnrm-system.yaml index 9969062ce3..86737e15c0 100644 --- a/operator/autopilot-channels/packages/configconnector/1.119.0/cluster/workload-identity/0-cnrm-system.yaml +++ b/operator/autopilot-channels/packages/configconnector/1.122.0/cluster/workload-identity/0-cnrm-system.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Namespace metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-system @@ -11,7 +11,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 iam.gke.io/gcp-service-account: cnrm-system@${PROJECT_ID?}.iam.gserviceaccount.com labels: cnrm.cloud.google.com/system: "true" @@ -22,7 +22,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -32,7 +32,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-resource-stats-recorder @@ -42,7 +42,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-manager @@ -52,7 +52,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-cnrm-system-role @@ -73,7 +73,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-cnrm-system-role @@ -94,7 +94,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -1271,7 +1271,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role @@ -1321,7 +1321,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-cluster-role @@ -1379,7 +1379,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-ns-role @@ -1404,7 +1404,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-role @@ -1434,7 +1434,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -2222,7 +2222,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role @@ -2285,7 +2285,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role-binding @@ -2303,7 +2303,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role-binding @@ -2321,7 +2321,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-admin-binding @@ -2344,7 +2344,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-binding @@ -2361,7 +2361,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-binding @@ -2378,7 +2378,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-watcher-binding @@ -2395,7 +2395,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-binding @@ -2412,7 +2412,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-binding @@ -2429,7 +2429,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -2446,7 +2446,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "8888" prometheus.io/scrape: "true" labels: @@ -2468,7 +2468,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "48797" prometheus.io/scrape: "true" labels: @@ -2489,7 +2489,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2507,7 +2507,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2520,8 +2520,8 @@ spec: - /configconnector/recorder env: - name: CONFIG_CONNECTOR_VERSION - value: 1.119.0 - image: gcr.io/gke-release/cnrm/recorder:d63ad2a + value: 1.122.0 + image: gcr.io/gke-release/cnrm/recorder:e373e18 imagePullPolicy: Always name: recorder ports: @@ -2554,7 +2554,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2569,7 +2569,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2584,7 +2584,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: gcr.io/gke-release/cnrm/webhook:d63ad2a + image: gcr.io/gke-release/cnrm/webhook:e373e18 imagePullPolicy: Always name: webhook ports: @@ -2614,7 +2614,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/system: "true" @@ -2629,7 +2629,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/system: "true" @@ -2639,7 +2639,7 @@ spec: - --prometheus-scrape-endpoint=:8888 command: - /configconnector/manager - image: gcr.io/gke-release/cnrm/controller:d63ad2a + image: gcr.io/gke-release/cnrm/controller:e373e18 imagePullPolicy: Always name: manager ports: @@ -2669,7 +2669,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2684,7 +2684,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2692,7 +2692,7 @@ spec: containers: - command: - /configconnector/deletiondefender - image: gcr.io/gke-release/cnrm/deletiondefender:d63ad2a + image: gcr.io/gke-release/cnrm/deletiondefender:e373e18 imagePullPolicy: Always name: deletiondefender ports: @@ -2723,7 +2723,7 @@ kind: HorizontalPodAutoscaler metadata: annotations: autoscaling.alpha.kubernetes.io/metrics: '[{"type":"Resource","resource":{"name":"memory","targetAverageUtilization":70}}]' - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook diff --git a/operator/autopilot-channels/packages/configconnector/1.119.0/crds.yaml b/operator/autopilot-channels/packages/configconnector/1.122.0/crds.yaml similarity index 92% rename from operator/autopilot-channels/packages/configconnector/1.119.0/crds.yaml rename to operator/autopilot-channels/packages/configconnector/1.122.0/crds.yaml index d8369cd9d9..13f5a24abc 100644 --- a/operator/autopilot-channels/packages/configconnector/1.119.0/crds.yaml +++ b/operator/autopilot-channels/packages/configconnector/1.122.0/crds.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -264,7 +264,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -650,7 +650,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -780,7 +780,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -949,7 +949,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -1262,7 +1262,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -2456,7 +2456,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -2895,7 +2895,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -3617,6 +3617,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -4328,6 +4336,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -4350,7 +4366,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -4528,6 +4544,27 @@ spec: description: The number of CPU's in the VM instance. type: integer type: object + networkConfig: + description: Instance level network configuration. + properties: + authorizedExternalNetworks: + description: A list of external networks authorized to access + this instance. This field is only allowed to be set when 'enable_public_ip' + is set to true. + items: + properties: + cidrRange: + description: CIDR range for one authorized network of the + instance. + type: string + type: object + type: array + enablePublicIp: + description: Enabling public ip for the instance. If a user wishes + to disable this, please also clear the list of the authorized + external networks set on the same instance. + type: boolean + type: object readPoolConfig: description: Read pool specific config. If the instance type is READ_POOL, this configuration must be provided. @@ -4590,6 +4627,11 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + publicIpAddress: + description: The public IP addresses for the Instance. This is available + ONLY when networkConfig.enablePublicIp is set to true. This is the + connection endpoint for an end-user application. + type: string reconciling: description: Set to true if the current state of Instance does not match the user's intended state, and the service is actively updating @@ -4769,6 +4811,27 @@ spec: description: The number of CPU's in the VM instance. type: integer type: object + networkConfig: + description: Instance level network configuration. + properties: + authorizedExternalNetworks: + description: A list of external networks authorized to access + this instance. This field is only allowed to be set when 'enable_public_ip' + is set to true. + items: + properties: + cidrRange: + description: CIDR range for one authorized network of the + instance. + type: string + type: object + type: array + enablePublicIp: + description: Enabling public ip for the instance. If a user wishes + to disable this, please also clear the list of the authorized + external networks set on the same instance. + type: boolean + type: object readPoolConfig: description: Read pool specific config. If the instance type is READ_POOL, this configuration must be provided. @@ -4831,6 +4894,11 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + publicIpAddress: + description: The public IP addresses for the Instance. This is available + ONLY when networkConfig.enablePublicIp is set to true. This is the + connection endpoint for an end-user application. + type: string reconciling: description: Set to true if the current state of Instance does not match the user's intended state, and the service is actively updating @@ -4865,7 +4933,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5061,7 +5129,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5335,7 +5403,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5494,7 +5562,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5658,7 +5726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5831,7 +5899,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5975,7 +6043,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6105,7 +6173,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6233,7 +6301,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -6408,7 +6476,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6538,7 +6606,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6714,7 +6782,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6843,7 +6911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -7137,7 +7205,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7272,7 +7340,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7524,7 +7592,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7699,7 +7767,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7832,7 +7900,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -8533,7 +8601,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -8683,7 +8751,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9134,7 +9202,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9501,7 +9569,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9703,7 +9771,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9874,7 +9942,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10054,7 +10122,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10230,7 +10298,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10457,7 +10525,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10513,59 +10581,6 @@ spec: type: object spec: properties: - aws: - description: Connection properties specific to Amazon Web Services. - properties: - accessRole: - description: Authentication using Google owned service account - to assume into customer's AWS IAM Role. - properties: - iamRoleId: - description: The user’s AWS IAM Role that trusts the Google-owned - AWS IAM user Connection. - type: string - identity: - description: A unique Google-owned and Google-generated identity - for the Connection. This identity will be used to access - the user's AWS IAM Role. - type: string - required: - - iamRoleId - type: object - required: - - accessRole - type: object - azure: - description: Container for connection properties specific to Azure. - properties: - application: - description: The name of the Azure Active Directory Application. - type: string - clientId: - description: The client id of the Azure Active Directory Application. - type: string - customerTenantId: - description: The id of customer's directory that host the data. - type: string - federatedApplicationClientId: - description: The Azure Application (client) ID where the federated - credentials will be hosted. - type: string - identity: - description: A unique Google-owned and Google-generated identity - for the Connection. This identity will be used to access the - user's Azure Active Directory Application. - type: string - objectId: - description: The object id of the Azure Active Directory Application. - type: string - redirectUri: - description: The URL user will be redirected to after granting - consent during connection setup. - type: string - required: - - customerTenantId - type: object cloudResource: description: Container for connection properties for delegation of access to GCP resources. @@ -10575,99 +10590,6 @@ spec: of this connection. type: string type: object - cloudSpanner: - description: Connection properties specific to Cloud Spanner. - properties: - database: - description: Cloud Spanner database in the form 'project/instance/database'. - type: string - useParallelism: - description: If parallelism should be used when reading from Cloud - Spanner. - type: boolean - useServerlessAnalytics: - description: If the serverless analytics service should be used - to read data from Cloud Spanner. useParallelism must be set - when using serverless analytics. - type: boolean - required: - - database - type: object - cloudSql: - description: Connection properties specific to the Cloud SQL. - properties: - credential: - description: Cloud SQL properties. - properties: - password: - description: Password for database. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom - properties: - value: - description: Value of the field. Cannot be used if 'valueFrom' - is specified. - type: string - valueFrom: - description: Source for the field's value. Cannot be used - if 'value' is specified. - properties: - secretKeyRef: - description: Reference to a value with the given key - in the given Secret in the resource's namespace. - properties: - key: - description: Key that identifies the value to - be extracted. - type: string - name: - description: Name of the Secret to extract a value - from. - type: string - required: - - name - - key - type: object - type: object - type: object - username: - description: Username for database. - type: string - required: - - password - - username - type: object - database: - description: Database name. - type: string - instanceId: - description: Cloud SQL instance ID in the form project:location:instance. - type: string - serviceAccountId: - description: When the connection is used in the context of an - operation in BigQuery, this service account will serve as the - identity being used for connecting to the CloudSQL instance - specified in this connection. - type: string - type: - description: 'Type of the Cloud SQL database. Possible values: - ["DATABASE_TYPE_UNSPECIFIED", "POSTGRES", "MYSQL"].' - type: string - required: - - credential - - database - - instanceId - - type - type: object description: description: A descriptive description for the connection. type: string @@ -10763,180 +10685,19 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.119.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: bigquerydatapolicydatapolicies.bigquerydatapolicy.cnrm.cloud.google.com -spec: - group: bigquerydatapolicy.cnrm.cloud.google.com - names: - categories: - - gcp - kind: BigQueryDataPolicyDataPolicy - plural: bigquerydatapolicydatapolicies - shortNames: - - gcpbigquerydatapolicydatapolicy - - gcpbigquerydatapolicydatapolicies - singular: bigquerydatapolicydatapolicy - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - dataMaskingPolicy: - description: The data masking policy that specifies the data masking - rule to use. - properties: - predefinedExpression: - description: 'The available masking rules. Learn more here: https://cloud.google.com/bigquery/docs/column-data-masking-intro#masking_options. - Possible values: ["SHA256", "ALWAYS_NULL", "DEFAULT_MASKING_VALUE", - "LAST_FOUR_CHARACTERS", "FIRST_FOUR_CHARACTERS", "EMAIL_MASK", - "DATE_YEAR_MASK"].' - type: string - required: - - predefinedExpression - type: object - dataPolicyType: - description: 'The enrollment level of the service. Possible values: - ["COLUMN_LEVEL_SECURITY_POLICY", "DATA_MASKING_POLICY"].' - type: string - location: - description: Immutable. The name of the location of the data policy. - type: string - policyTag: - description: Policy tag resource name, in the format of projects/{project_number}/locations/{locationId}/taxonomies/{taxonomyId}/policyTags/{policyTag_id}. - type: string - projectRef: - description: The project that this resource belongs to. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external + observedState: + description: The observed state of the underlying GCP resource. properties: - external: - description: 'Allowed value: The `name` field of a `Project` resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string + cloudResource: + description: Container for connection properties for delegation + of access to GCP resources. + properties: + serviceAccountId: + description: The account ID of the service created for the + purpose of this connection. + type: string + type: object type: object - resourceID: - description: Immutable. Optional. The dataPolicyId of the resource. - Used for creation and acquisition. When unset, the value of `metadata.name` - is used as the default. - type: string - required: - - dataPolicyType - - location - - policyTag - - projectRef - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - name: - description: Resource name of this data policy, in the format of projects/{project_number}/locations/{locationId}/dataPolicies/{dataPolicyId}. - type: string - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer type: object required: - spec @@ -10956,7 +10717,181 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: alpha + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: bigquerydatapolicydatapolicies.bigquerydatapolicy.cnrm.cloud.google.com +spec: + group: bigquerydatapolicy.cnrm.cloud.google.com + names: + categories: + - gcp + kind: BigQueryDataPolicyDataPolicy + plural: bigquerydatapolicydatapolicies + shortNames: + - gcpbigquerydatapolicydatapolicy + - gcpbigquerydatapolicydatapolicies + singular: bigquerydatapolicydatapolicy + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + dataMaskingPolicy: + description: The data masking policy that specifies the data masking + rule to use. + properties: + predefinedExpression: + description: 'The available masking rules. Learn more here: https://cloud.google.com/bigquery/docs/column-data-masking-intro#masking_options. + Possible values: ["SHA256", "ALWAYS_NULL", "DEFAULT_MASKING_VALUE", + "LAST_FOUR_CHARACTERS", "FIRST_FOUR_CHARACTERS", "EMAIL_MASK", + "DATE_YEAR_MASK"].' + type: string + required: + - predefinedExpression + type: object + dataPolicyType: + description: 'The enrollment level of the service. Possible values: + ["COLUMN_LEVEL_SECURITY_POLICY", "DATA_MASKING_POLICY"].' + type: string + location: + description: Immutable. The name of the location of the data policy. + type: string + policyTag: + description: Policy tag resource name, in the format of projects/{project_number}/locations/{locationId}/taxonomies/{taxonomyId}/policyTags/{policyTag_id}. + type: string + projectRef: + description: The project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `Project` resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The dataPolicyId of the resource. + Used for creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + required: + - dataPolicyType + - location + - policyTag + - projectRef + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + name: + description: Resource name of this data policy, in the format of projects/{project_number}/locations/{locationId}/dataPolicies/{dataPolicyId}. + type: string + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11214,7 +11149,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11624,7 +11559,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11924,7 +11859,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -12780,7 +12715,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -12967,7 +12902,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13157,7 +13092,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13419,7 +13354,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13792,6 +13727,10 @@ spec: - field - range type: object + requirePartitionFilter: + description: If set to true, queries over this table require a partition + filter that can be used for partition elimination to be specified. + type: boolean resourceID: description: Immutable. Optional. The tableId of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` @@ -13883,9 +13822,10 @@ spec: time. type: string requirePartitionFilter: - description: If set to true, queries over this table require a - partition filter that can be used for partition elimination - to be specified. + description: DEPRECATED. This field is deprecated; please use + the top level field with the same name instead. If set to true, + queries over this table require a partition filter that can + be used for partition elimination to be specified. type: boolean type: description: The supported types are DAY, HOUR, MONTH, and YEAR, @@ -13999,7 +13939,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14187,7 +14127,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14408,7 +14348,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14422,6 +14362,7 @@ spec: categories: - gcp kind: BigtableInstance + listKind: BigtableInstanceList plural: bigtableinstances shortNames: - gcpbigtableinstance @@ -14449,20 +14390,22 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: BigtableInstance is the Schema for the BigtableInstance API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: + description: BigtableInstanceSpec defines the desired state of BigtableInstance properties: cluster: description: A block of cluster configuration options. This can be @@ -14476,12 +14419,15 @@ spec: cpuTarget: description: The target CPU utilization for autoscaling. Value must be between 10 and 80. + format: int64 type: integer maxNodes: description: The maximum number of nodes for autoscaling. + format: int64 type: integer minNodes: description: The minimum number of nodes for autoscaling. + format: int64 type: integer storageTarget: description: The target storage utilization for autoscaling, @@ -14492,6 +14438,7 @@ spec: will not change, or if the cluster is just being created, it will use the default value of 2560 for SSD clusters and 8192 for HDD clusters. + format: int64 type: integer required: - cpuTarget @@ -14506,7 +14453,9 @@ spec: kmsKeyRef: description: |- Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable - cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains + cluster. The requirements for this key are: + + 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the cloudkms.cryptoKeyEncrypterDecrypter role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. 3) All clusters within an instance must use the same CMEK key access to this encryption key. @@ -14526,20 +14475,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object numNodes: description: The number of nodes in the cluster. If no value is set, Cloud Bigtable automatically allocates nodes based on your data footprint and optimized for 50% storage utilization. + format: int64 type: integer storageType: description: The storage type to use. One of "SSD" or "HDD". @@ -14561,8 +14511,9 @@ spec: and is intended to be dropped in a later version of the resource. type: boolean displayName: - description: The human-readable display name of the Bigtable instance. - Defaults to the instance name. + description: Required. The descriptive name for this instance as it + appears in UIs. Can be changed at any time, but should be kept globally + unique to avoid confusion. type: string instanceType: description: DEPRECATED. It is recommended to leave this field unspecified @@ -14575,182 +14526,178 @@ spec: but without the accompanying restrictions. The instance type to create. One of "DEVELOPMENT" or "PRODUCTION". Defaults to "PRODUCTION". type: string + resourceID: + description: The Instance name. If not given, the metadata.name will + be used. + type: string + type: object + status: + description: BigtableInstanceStatus defines the config connector machine + state of BigtableInstance + properties: + conditions: + description: Conditions represent the latest available observations + of the object's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: stable + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: bigtabletables.bigtable.cnrm.cloud.google.com +spec: + group: bigtable.cnrm.cloud.google.com + names: + categories: + - gcp + kind: BigtableTable + plural: bigtabletables + shortNames: + - gcpbigtabletable + - gcpbigtabletables + singular: bigtabletable + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + changeStreamRetention: + description: Duration to retain change stream data for the table. + Set to 0 to disable. Must be between 1 and 7 days. + type: string + columnFamily: + description: A group of columns within a table which share a common + configuration. This can be specified multiple times. + items: + properties: + family: + description: The name of the column family. + type: string + required: + - family + type: object + type: array + deletionProtection: + description: A field to make the table protected against data loss + i.e. when set to PROTECTED, deleting the table, the column families + in the table, and the instance containing the table would be prohibited. + If not provided, currently deletion protection will be set to UNPROTECTED + as it is the API default value. + type: string + instanceRef: + description: The name of the Bigtable instance. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `BigtableInstance` + resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object resourceID: description: Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default. type: string - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.119.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: stable - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: bigtabletables.bigtable.cnrm.cloud.google.com -spec: - group: bigtable.cnrm.cloud.google.com - names: - categories: - - gcp - kind: BigtableTable - plural: bigtabletables - shortNames: - - gcpbigtabletable - - gcpbigtabletables - singular: bigtabletable - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - changeStreamRetention: - description: Duration to retain change stream data for the table. - Set to 0 to disable. Must be between 1 and 7 days. - type: string - columnFamily: - description: A group of columns within a table which share a common - configuration. This can be specified multiple times. - items: - properties: - family: - description: The name of the column family. - type: string - required: - - family - type: object - type: array - deletionProtection: - description: A field to make the table protected against data loss - i.e. when set to PROTECTED, deleting the table, the column families - in the table, and the instance containing the table would be prohibited. - If not provided, currently deletion protection will be set to UNPROTECTED - as it is the API default value. - type: string - instanceRef: - description: The name of the Bigtable instance. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `name` field of a `BigtableInstance` - resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - resourceID: - description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. - type: string - splitKeys: - items: - type: string - type: array - required: - - instanceRef + splitKeys: + items: + type: string + type: array + required: + - instanceRef type: object status: properties: @@ -14806,7 +14753,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15265,7 +15212,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15533,7 +15480,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15958,7 +15905,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -16399,7 +16346,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -16752,7 +16699,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -17573,7 +17520,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -17890,7 +17837,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18129,7 +18076,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18360,7 +18307,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18590,7 +18537,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20098,7 +20045,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20145,11 +20092,219 @@ spec: properties: networkConfig: properties: - PeeredNetworkIPRange: + egressOption: + type: string + peeredNetworkIPRange: + type: string + peeredNetworkRef: + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. + type: string + name: + description: The `name` field of a `ComputeNetwork` resource. + type: string + namespace: + description: The `namespace` field of a `ComputeNetwork` + resource. + type: string + type: object + required: + - peeredNetworkRef + type: object + workerConfig: + properties: + diskSizeGb: + format: int64 + type: integer + machineType: + type: string + type: object + required: + - workerConfig + type: object + projectRef: + description: The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object + resourceID: + type: string + required: + - location + - privatePoolV1Config + - projectRef + type: object + status: + description: CloudBuildWorkerPoolStatus defines the observed state of + Instance + properties: + conditions: + description: Conditions represent the latest available observations + of the object's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + format: int64 + type: integer + observedState: + description: ObservedState is the state of the resource as most recently + observed in GCP. + properties: + createTime: + description: The creation timestamp of the workerpool. + format: date-time + type: string + networkConfig: + properties: + egressOption: + type: string + peeredNetwork: + type: string + peeredNetworkIPRange: type: string + type: object + updateTime: + description: The last update timestamp of the workerpool. + format: date-time + type: string + workerConfig: + properties: + diskSizeGb: + format: int64 + type: integer + machineType: + type: string + type: object + type: object + type: object + type: object + served: true + storage: false + subresources: + status: {} + - name: v1beta1 + schema: + openAPIV3Schema: + description: CloudBuildWorkerPool is the Schema for the CloudBuild WorkerPool + API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: CloudBuildWorkerPoolSpec defines the desired state of Instance + properties: + displayName: + description: A user-specified, human-readable name for the `WorkerPool`. + If provided, this value must be 1-63 characters. + type: string + location: + type: string + privatePoolV1Config: + description: Legacy Private Pool configuration. + properties: + networkConfig: + description: Network configuration for the pool. + properties: egressOption: + description: Option to configure network egress for the workers. type: string + peeredNetworkIPRange: + description: Immutable. Subnet IP range within the peered + network. This is specified in CIDR notation with a slash + and the subnet prefix size. You can optionally specify an + IP address before the subnet prefix value. e.g. `192.168.0.0/29` + would specify an IP range starting at 192.168.0.0 with a + prefix size of 29 bits. `/16` would specify a prefix size + of 16 bits, with an automatically determined IP within the + peered VPC. If unspecified, a value of `/24` will be used. + type: string + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf peeredNetworkRef: + description: Immutable. The network definition that the workers + are peered to. If this section is left empty, the workers + will be peered to `WorkerPool.project_id` on the service + producer network. oneOf: - not: required: @@ -20167,7 +20322,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -20177,15 +20332,24 @@ spec: resource. type: string type: object - required: - - peeredNetworkRef + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf type: object workerConfig: + description: Machine configuration for the workers in the pool. properties: diskSizeGb: + description: Size of the disk attached to the worker, in GB. + See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). + Specify a value of up to 2000. If `0` is specified, Cloud + Build will use a standard disk size. format: int64 type: integer machineType: + description: Machine type of a worker, such as `e2-medium`. + See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). + If left blank, Cloud Build will use a sensible default. type: string type: object required: @@ -20224,6 +20388,8 @@ spec: type: string type: object resourceID: + description: The GCP resource identifier. If not given, the metadata.name + will be used. type: string required: - location @@ -20260,6 +20426,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique Config Connector specifier for the resource + in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -20276,13 +20446,30 @@ spec: description: The creation timestamp of the workerpool. format: date-time type: string + etag: + description: The Checksum computed by the server, using weak indicator. + type: string networkConfig: + description: Network configuration for the pool. properties: egressOption: + description: Option to configure network egress for the workers. type: string peeredNetwork: + description: Immutable. The network definition that the workers + are peered to. If this section is left empty, the workers + will be peered to `WorkerPool.project_id` on the service + producer network. type: string peeredNetworkIPRange: + description: Immutable. Subnet IP range within the peered + network. This is specified in CIDR notation with a slash + and the subnet prefix size. You can optionally specify an + IP address before the subnet prefix value. e.g. `192.168.0.0/29` + would specify an IP range starting at 192.168.0.0 with a + prefix size of 29 bits. `/16` would specify a prefix size + of 16 bits, with an automatically determined IP within the + peered VPC. If unspecified, a value of `/24` will be used. type: string type: object updateTime: @@ -20290,13 +20477,23 @@ spec: format: date-time type: string workerConfig: + description: Machine configuration for the workers in the pool. properties: diskSizeGb: + description: Size of the disk attached to the worker, in GB. + See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). + Specify a value of up to 2000. If `0` is specified, Cloud + Build will use a standard disk size. format: int64 type: integer machineType: + description: Machine type of a worker, such as `e2-medium`. + See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). + If left blank, Cloud Build will use a sensible default. type: string type: object + required: + - workerConfig type: object type: object type: object @@ -20309,7 +20506,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20783,7 +20980,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -21215,7 +21412,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -21413,7 +21610,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -21680,11 +21877,11 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha + cnrm.cloud.google.com/stability-level: stable cnrm.cloud.google.com/system: "true" cnrm.cloud.google.com/tf2crd: "true" name: cloudidsendpoints.cloudids.cnrm.cloud.google.com @@ -21718,7 +21915,7 @@ spec: jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime name: Status Age type: date - name: v1alpha1 + name: v1beta1 schema: openAPIV3Schema: properties: @@ -21850,16 +22047,187 @@ spec: type: string type: object type: array - createTime: - description: Creation timestamp in RFC 3339 text format. + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + createTime: + description: Creation timestamp in RFC 3339 text format. + type: string + endpointForwardingRule: + description: URL of the endpoint's network address to which traffic + is to be sent by Packet Mirroring. + type: string + endpointIP: + description: Internal IP address of the endpoint's network entry + point. + type: string + updateTime: + description: Last update timestamp in RFC 3339 text format. + type: string + type: object + type: object + required: + - spec + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + description: + description: Immutable. An optional description of the endpoint. type: string - endpointForwardingRule: - description: URL of the endpoint's network address to which traffic - is to be sent by Packet Mirroring. + location: + description: Immutable. The location for the endpoint. type: string - endpointIp: - description: Internal IP address of the endpoint's network entry point. + networkRef: + description: |- + Immutable. Name of the VPC network that is connected + to the IDS endpoint. This can either contain the VPC network name + itself (like "src-net") or the full URL to the network (like "projects/{project_id}/global/networks/src-net"). + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `ComputeNetwork` + resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + projectRef: + description: The project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `Project` resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The name of the resource. Used for + creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + severity: + description: 'Immutable. The minimum alert severity level that is + reported by the endpoint. Possible values: ["INFORMATIONAL", "LOW", + "MEDIUM", "HIGH", "CRITICAL"].' type: string + threatExceptions: + description: 'Configuration for threat IDs excluded from generating + alerts. Limit: 99 IDs.' + items: + type: string + type: array + required: + - location + - networkRef + - projectRef + - severity + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -21867,9 +22235,24 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer - updateTime: - description: Last update timestamp in RFC 3339 text format. - type: string + observedState: + description: The observed state of the underlying GCP resource. + properties: + createTime: + description: Creation timestamp in RFC 3339 text format. + type: string + endpointForwardingRule: + description: URL of the endpoint's network address to which traffic + is to be sent by Packet Mirroring. + type: string + endpointIP: + description: Internal IP address of the endpoint's network entry + point. + type: string + updateTime: + description: Last update timestamp in RFC 3339 text format. + type: string + type: object type: object required: - spec @@ -21889,7 +22272,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22068,7 +22451,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22330,7 +22713,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -22868,7 +23251,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23139,7 +23522,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23410,7 +23793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23865,7 +24248,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24135,7 +24518,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24349,7 +24732,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -25628,7 +26011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -25842,7 +26225,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26019,7 +26402,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26783,7 +27166,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26934,7 +27317,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27154,7 +27537,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27346,7 +27729,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27688,7 +28071,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -28066,7 +28449,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -28080,6 +28463,7 @@ spec: categories: - gcp kind: ComputeForwardingRule + listKind: ComputeForwardingRuleList plural: computeforwardingrules shortNames: - gcpcomputeforwardingrule @@ -28107,16 +28491,17 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: ComputeForwardingRule is the Schema for the compute API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object @@ -28157,9 +28542,8 @@ spec: whether the PSC endpoint can be accessed from another region. type: boolean backendServiceRef: - description: |- - A ComputeBackendService to receive the matched traffic. This is - used only for internal load balancing. + description: A ComputeBackendService to receive the matched traffic. + This is used only for internal load balancing. oneOf: - not: required: @@ -28176,20 +28560,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeBackendService` - resource.' + description: The ComputeBackendService selflink in the form "projects/{{project}}/global/backendServices/{{name}}" + or "projects/{{project}}/regions/{{region}}/backendServices/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeBackendService` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeBackendService` + resource. type: string type: object description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. + description: Immutable. An optional description of this resource. + Provide this property when you create the resource. type: string ipAddress: description: |- @@ -28212,11 +28597,6 @@ spec: forwarding rule. By default, if this field is empty, an ephemeral internal IP address will be automatically allocated from the IP range of the subnet or network configured for this forwarding rule. - oneOf: - - required: - - addressRef - - required: - - ip properties: addressRef: oneOf: @@ -28235,14 +28615,14 @@ spec: - external properties: external: - description: 'Allowed value: The `address` field of a `ComputeAddress` - resource.' + description: The ComputeAddress selflink in the form "projects/{{project}}/regions/{{region}}/addresses/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeAddress` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeAddress` resource. type: string type: object ip: @@ -28324,14 +28704,12 @@ spec: items: properties: name: - description: |- - Immutable. Name of the metadata label. The length must be between - 1 and 1024 characters, inclusive. + description: Immutable. Name of the metadata label. The + length must be between 1 and 1024 characters, inclusive. type: string value: - description: |- - Immutable. The value that the label must match. The value has a maximum - length of 1024 characters. + description: Immutable. The value that the label must + match. The value has a maximum length of 1024 characters. type: string required: - name @@ -28354,11 +28732,10 @@ spec: type: object type: array networkRef: - description: |- - This field is not used for external load balancing. For internal - load balancing, this field identifies the network that the load - balanced IP should belong to for this forwarding rule. If this - field is not specified, the default network will be used. + description: This field is not used for external load balancing. For + internal load balancing, this field identifies the network that + the load balanced IP should belong to for this forwarding rule. + If this field is not specified, the default network will be used. oneOf: - not: required: @@ -28375,14 +28752,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object networkTier: @@ -28416,7 +28793,6 @@ spec: [port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications) for details. - Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. @@ -28438,7 +28814,6 @@ spec: * By internal TCP/UDP load balancers, backend service-based network load balancers, internal protocol forwarding and when protocol is not L3_DEFAULT. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. Only packets addressed to these ports will be forwarded to the backends configured with this @@ -28529,37 +28904,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object target: - description: |- - The target resource to receive the matched traffic. The forwarded - traffic must be of a type appropriate to the target object. For - INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets + description: The target resource to receive the matched traffic. The + forwarded traffic must be of a type appropriate to the target object. + For INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets are valid. - oneOf: - - required: - - serviceAttachmentRef - - required: - - targetGRPCProxyRef - - required: - - targetHTTPProxyRef - - required: - - targetHTTPSProxyRef - - required: - - targetSSLProxyRef - - required: - - targetTCPProxyRef - - required: - - targetVPNGatewayRef properties: serviceAttachmentRef: oneOf: @@ -28578,14 +28937,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeServiceAttachment` - resource.' + description: The ComputeServiceAttachment selflink in the + form "projects/{{project}}/regions/{{region}}/serviceAttachments/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeServiceAttachment` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeServiceAttachment` + resource. type: string type: object targetGRPCProxyRef: @@ -28605,14 +28967,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetGRPCProxy` - resource.' + description: The ComputeTargetGrpcProxy selflink in the form + "projects/{{project}}/global/targetGrpcProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetGrpcProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetGrpcProxy` + resource. type: string type: object targetHTTPProxyRef: @@ -28632,14 +28997,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPProxy` - resource.' + description: The ComputeTargetHTTPProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPProxy` + resource. type: string type: object targetHTTPSProxyRef: @@ -28659,14 +29028,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPSProxy` - resource.' + description: The ComputeTargetHTTPSProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPSProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPSProxy` + resource. type: string type: object targetSSLProxyRef: @@ -28686,14 +29059,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetSSLProxy` - resource.' + description: The ComputeTargetSSLProxy selflink in the form + "projects/{{project}}/global/targetSslProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetSSLProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetSSLProxy` + resource. type: string type: object targetTCPProxyRef: @@ -28713,14 +29089,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetTCPProxy` - resource.' + description: The ComputeTargetTCPProxy selflink in the form + "projects/{{project}}/global/targetTcpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetTcpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetTCPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetTCPProxy` + resource. type: string type: object targetVPNGatewayRef: @@ -28740,14 +29120,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetVPNGateway` - resource.' + description: The ComputeTargetVPNGateway selflink in the form + "projects/{{project}}/regions/{{region}}/targetVpnGateways/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetVPNGateway` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetVPNGateway` + resource. type: string type: object type: object @@ -28764,8 +29147,8 @@ spec: if the current Forwarding Rule does not have sourceIPRanges specified.' type: string conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -28792,9 +29175,12 @@ spec: creationTimestamp: description: Creation timestamp in RFC3339 text format. type: string + externalRef: + description: A unique Config Connector specifier for the resource + in GCP. + type: string labelFingerprint: - description: |- - The fingerprint used for optimistic locking of this resource. Used + description: The fingerprint used for optimistic locking of this resource. Used internally during updates. type: string observedGeneration: @@ -28803,6 +29189,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer pscConnectionId: description: The PSC connection id of the PSC Forwarding Rule. @@ -28821,25 +29208,17 @@ spec: This field is only used for INTERNAL load balancing. type: string type: object - required: - - spec type: object served: true storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29001,7 +29380,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29159,7 +29538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29623,7 +30002,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29784,7 +30163,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29945,7 +30324,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30303,7 +30682,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -31082,7 +31461,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -31264,7 +31643,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -31467,7 +31846,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -32500,7 +32879,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -33532,7 +33911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -33857,7 +34236,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34074,11 +34453,11 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha + cnrm.cloud.google.com/stability-level: stable cnrm.cloud.google.com/system: "true" cnrm.cloud.google.com/tf2crd: "true" name: computemanagedsslcertificates.compute.cnrm.cloud.google.com @@ -34112,7 +34491,7 @@ spec: jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime name: Status Age type: date - name: v1alpha1 + name: v1beta1 schema: openAPIV3Schema: properties: @@ -34190,9 +34569,6 @@ spec: type: object status: properties: - certificateId: - description: The unique identifier for the resource. - type: integer conditions: description: Conditions represent the latest available observation of the resource's current state. @@ -34219,12 +34595,6 @@ spec: type: string type: object type: array - creationTimestamp: - description: Creation timestamp in RFC3339 text format. - type: string - expireTime: - description: Expire time of the certificate in RFC3339 text format. - type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -34232,265 +34602,434 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer - selfLink: - type: string - subjectAlternativeNames: - description: Domains associated with the certificate via Subject Alternative - Name. - items: - type: string - type: array - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.119.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: stable - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: computenetworkendpointgroups.compute.cnrm.cloud.google.com -spec: - group: compute.cnrm.cloud.google.com - names: - categories: - - gcp - kind: ComputeNetworkEndpointGroup - plural: computenetworkendpointgroups - shortNames: - - gcpcomputenetworkendpointgroup - - gcpcomputenetworkendpointgroups - singular: computenetworkendpointgroup - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - defaultPort: - description: |- - Immutable. The default port used if the port number is not specified in the - network endpoint. - type: integer - description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. - type: string - location: - description: 'Location represents the geographical location of the - ComputeNetworkEndpointGroup. Specify a zone name. Reference: GCP - definition of regions/zones (https://cloud.google.com/compute/docs/regions-zones/)' - type: string - networkEndpointType: - description: |- - Immutable. Type of network endpoints in this network endpoint group. - NON_GCP_PRIVATE_IP_PORT is used for hybrid connectivity network - endpoint groups (see https://cloud.google.com/load-balancing/docs/hybrid). - Note that NON_GCP_PRIVATE_IP_PORT can only be used with Backend Services - that 1) have the following load balancing schemes: EXTERNAL, EXTERNAL_MANAGED, - INTERNAL_MANAGED, and INTERNAL_SELF_MANAGED and 2) support the RATE or - CONNECTION balancing modes. - - Possible values include: GCE_VM_IP, GCE_VM_IP_PORT, and NON_GCP_PRIVATE_IP_PORT. Default value: "GCE_VM_IP_PORT" Possible values: ["GCE_VM_IP", "GCE_VM_IP_PORT", "NON_GCP_PRIVATE_IP_PORT"]. - type: string - networkRef: - description: |- - The network to which all network endpoints in the NEG belong. Uses - "default" project network if unspecified. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - resourceID: - description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. - type: string - subnetworkRef: - description: Optional subnetwork to which all network endpoints in - the NEG belong. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external + observedState: + description: The observed state of the underlying GCP resource. properties: - external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + certificateID: + description: The unique identifier for the resource. + type: integer + creationTimestamp: + description: Creation timestamp in RFC3339 text format. type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + expireTime: + description: Expire time of the certificate in RFC3339 text format. type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + selfLink: type: string - type: object - required: - - location - - networkRef - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. + subjectAlternativeNames: + description: Domains associated with the certificate via Subject + Alternative Name. + items: type: string - type: object - type: array - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - selfLink: - type: string - size: - description: Number of network endpoints in the network endpoint group. - type: integer + type: array + type: object type: object required: - spec type: object served: true - storage: true + storage: false subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.119.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: computenetworkendpoints.compute.cnrm.cloud.google.com -spec: - group: compute.cnrm.cloud.google.com - names: - categories: - - gcp - kind: ComputeNetworkEndpoint - plural: computenetworkendpoints - shortNames: - - gcpcomputenetworkendpoint - - gcpcomputenetworkendpoints - singular: computenetworkendpoint - preserveUnknownFields: false - scope: Namespaced - versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + description: + description: Immutable. An optional description of this resource. + type: string + managed: + description: |- + Immutable. Properties relevant to a managed certificate. These will be used if the + certificate is managed (as indicated by a value of 'MANAGED' in 'type'). + properties: + domains: + description: |- + Immutable. Domains for which a managed SSL certificate will be valid. Currently, + there can be up to 100 domains in this list. + items: + type: string + type: array + required: + - domains + type: object + projectRef: + description: The project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `Project` resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The name of the resource. Used for + creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + type: + description: |- + Immutable. Enum field whose value is always 'MANAGED' - used to signal to the API + which type this is. Default value: "MANAGED" Possible values: ["MANAGED"]. + type: string + required: + - projectRef + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + certificateID: + description: The unique identifier for the resource. + type: integer + creationTimestamp: + description: Creation timestamp in RFC3339 text format. + type: string + expireTime: + description: Expire time of the certificate in RFC3339 text format. + type: string + selfLink: + type: string + subjectAlternativeNames: + description: Domains associated with the certificate via Subject + Alternative Name. + items: + type: string + type: array + type: object + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: stable + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: computenetworkendpointgroups.compute.cnrm.cloud.google.com +spec: + group: compute.cnrm.cloud.google.com + names: + categories: + - gcp + kind: ComputeNetworkEndpointGroup + plural: computenetworkendpointgroups + shortNames: + - gcpcomputenetworkendpointgroup + - gcpcomputenetworkendpointgroups + singular: computenetworkendpointgroup + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + defaultPort: + description: |- + Immutable. The default port used if the port number is not specified in the + network endpoint. + type: integer + description: + description: |- + Immutable. An optional description of this resource. Provide this property when + you create the resource. + type: string + location: + description: 'Location represents the geographical location of the + ComputeNetworkEndpointGroup. Specify a zone name. Reference: GCP + definition of regions/zones (https://cloud.google.com/compute/docs/regions-zones/)' + type: string + networkEndpointType: + description: |- + Immutable. Type of network endpoints in this network endpoint group. + NON_GCP_PRIVATE_IP_PORT is used for hybrid connectivity network + endpoint groups (see https://cloud.google.com/load-balancing/docs/hybrid). + Note that NON_GCP_PRIVATE_IP_PORT can only be used with Backend Services + that 1) have the following load balancing schemes: EXTERNAL, EXTERNAL_MANAGED, + INTERNAL_MANAGED, and INTERNAL_SELF_MANAGED and 2) support the RATE or + CONNECTION balancing modes. + + Possible values include: GCE_VM_IP, GCE_VM_IP_PORT, and NON_GCP_PRIVATE_IP_PORT. Default value: "GCE_VM_IP_PORT" Possible values: ["GCE_VM_IP", "GCE_VM_IP_PORT", "NON_GCP_PRIVATE_IP_PORT"]. + type: string + networkRef: + description: |- + The network to which all network endpoints in the NEG belong. Uses + "default" project network if unspecified. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` + resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The name of the resource. Used for + creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + subnetworkRef: + description: Optional subnetwork to which all network endpoints in + the NEG belong. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` + resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + required: + - location + - networkRef + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + selfLink: + type: string + size: + description: Number of network endpoints in the network endpoint group. + type: integer + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: alpha + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: computenetworkendpoints.compute.cnrm.cloud.google.com +spec: + group: compute.cnrm.cloud.google.com + names: + categories: + - gcp + kind: ComputeNetworkEndpoint + plural: computenetworkendpoints + shortNames: + - gcpcomputenetworkendpoint + - gcpcomputenetworkendpoints + singular: computenetworkendpoint + preserveUnknownFields: false + scope: Namespaced + versions: - additionalPrinterColumns: - jsonPath: .metadata.creationTimestamp name: Age @@ -34681,7 +35220,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34852,7 +35391,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35058,7 +35597,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35446,7 +35985,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35627,7 +36166,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35827,7 +36366,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36001,7 +36540,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36291,7 +36830,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36472,7 +37011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36617,7 +37156,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36746,7 +37285,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36972,7 +37511,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -37372,7 +37911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37669,7 +38208,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37787,7 +38326,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38220,7 +38759,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38397,7 +38936,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38699,7 +39238,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38996,7 +39535,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39192,7 +39731,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39406,7 +39945,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39730,7 +40269,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40022,7 +40561,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40479,7 +41018,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40835,7 +41374,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41062,7 +41601,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41341,7 +41880,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41962,7 +42501,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -42309,7 +42848,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42415,7 +42954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42559,7 +43098,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42958,7 +43497,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43176,7 +43715,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43339,7 +43878,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43633,7 +44172,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43811,7 +44350,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43990,7 +44529,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44068,7 +44607,7 @@ spec: - external properties: external: - description: 'Allowed value: string of the format `projects/{{project}}/locations/{{location}}/certificates/{{value}}`, + description: 'Allowed value: string of the format `projects/{{project}}/locations/global/certificates/{{value}}`, where {{value}} is the `name` field of a `CertificateManagerCertificate` resource.' type: string @@ -44084,7 +44623,10 @@ spec: description: |- A reference to the CertificateMap resource uri that identifies a certificate map associated with the given target proxy. This field - can only be set for global target proxies. + can only be set for global target proxies. This field is only supported + for EXTERNAL and EXTERNAL_MANAGED load balancing schemes. + For INTERNAL_MANAGED, use certificateManagerCertificates instead. + sslCertificates and certificateMap fields can not be defined together. oneOf: - not: required: @@ -44101,7 +44643,7 @@ spec: - external properties: external: - description: 'Allowed value: string of the format `//certificatemanager.googleapis.com/projects/{{project}}/locations/{{location}}/certificateMaps/{{value}}`, + description: 'Allowed value: string of the format `//certificatemanager.googleapis.com/projects/{{project}}/locations/global/certificateMaps/{{value}}`, where {{value}} is the `name` field of a `CertificateManagerCertificateMap` resource.' type: string @@ -44345,7 +44887,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44570,7 +45112,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44825,7 +45367,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45084,7 +45626,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45251,7 +45793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45412,7 +45954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48135,7 +48677,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48339,7 +48881,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48711,7 +49253,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -49027,7 +49569,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -49616,7 +50158,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -49852,7 +50394,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -50203,7 +50745,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -51579,18 +52121,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect @@ -52027,6 +52568,23 @@ spec: description: Base64 encoded public certificate used by clients to authenticate to the cluster endpoint. type: string + clusterCaCertificate: + description: Base64 encoded public certificate that is the + root of trust for the cluster. + type: string + type: object + privateClusterConfig: + description: Configuration for private clusters, clusters with + private nodes. + properties: + privateEndpoint: + description: The internal IP address of this cluster's master + endpoint. + type: string + publicEndpoint: + description: The external IP address of this cluster's master + endpoint. + type: string type: object type: object operation: @@ -52062,7 +52620,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -52766,18 +53324,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect @@ -52987,7 +53544,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53259,7 +53816,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53425,7 +53982,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53621,7 +54178,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53806,7 +54363,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54038,7 +54595,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54212,7 +54769,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54226,6 +54783,7 @@ spec: categories: - gcp kind: DataflowFlexTemplateJob + listKind: DataflowFlexTemplateJobList plural: dataflowflextemplatejobs shortNames: - gcpdataflowflextemplatejob @@ -54234,6 +54792,320 @@ spec: preserveUnknownFields: false scope: Namespaced versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: DataflowFlexTemplateJob is the Schema for the DataflowFlexTemplateJob + API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: DataflowFlexTemplateJobSpec defines the desired state of + DataflowFlexTemplateJob + properties: + additionalExperiments: + description: Additional experiment flags for the job. + items: + type: string + type: array + autoscalingAlgorithm: + description: The algorithm to use for autoscaling + type: string + containerSpecGcsPath: + description: Cloud Storage path to a file with json serialized ContainerSpec + as content. + type: string + enableStreamingEngine: + description: Whether to enable Streaming Engine for the job. + type: boolean + ipConfiguration: + description: Configuration for VM IPs. + type: string + kmsKeyNameRef: + description: The Cloud KMS key for the job. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. + type: string + name: + description: The `name` of a `KMSCryptoKey` resource. + type: string + namespace: + description: The `namespace` of a `KMSCryptoKey` resource. + type: string + type: object + launcherMachineType: + description: The machine type to use for launching the job. The default + is n1-standard-1. + type: string + machineType: + description: The machine type to use for the job. Defaults to the + value from the template if not specified. + type: string + maxWorkers: + description: The maximum number of Google Compute Engine instances + to be made available to your pipeline during execution, from 1 to + 1000. + format: int32 + type: integer + networkRef: + description: Network to which VMs will be assigned. If empty or unspecified, + the service will use the network "default". + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. + type: string + name: + description: The `name` field of a `ComputeNetwork` resource. + type: string + namespace: + description: The `namespace` field of a `ComputeNetwork` resource. + type: string + type: object + numWorkers: + description: The initial number of Google Compute Engine instances + for the job. + format: int32 + type: integer + parameters: + description: The parameters for FlexTemplate. Ex. {"num_workers":"5"} + type: object + x-kubernetes-preserve-unknown-fields: true + region: + description: Immutable. The region in which the created job should + run. + type: string + sdkContainerImage: + description: Docker registry location of container image to use for + the 'worker harness. Default is the container for the version of + the SDK. Note this field is only valid for portable pipelines. + type: string + serviceAccountEmailRef: + description: The email address of the service account to run the job + as. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `email` field of an `IAMServiceAccount` resource. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + stagingLocation: + description: The Cloud Storage path for staging local files. Must + be a valid Cloud Storage URL, beginning with `gs://`. + type: string + subnetworkRef: + description: Subnetwork to which VMs will be assigned, if desired. + You can specify a subnetwork using either a complete URL or an abbreviated + path. Expected to be of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" + or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is + located in a Shared VPC network, you must use the complete URL. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. + type: string + name: + description: The `name` field of a `ComputeSubnetwork` resource. + type: string + namespace: + description: The `namespace` field of a `ComputeSubnetwork` resource. + type: string + type: object + tempLocation: + description: The Cloud Storage path to use for temporary files. Must + be a valid Cloud Storage URL, beginning with `gs://`. + type: string + transformNameMapping: + description: Map of transform name prefixes of the job to be replaced + with the corresponding name prefixes of the new job. Only applicable + when updating a pipeline. + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - containerSpecGcsPath + type: object + status: + description: DataflowFlexTemplateJobStatus defines the config connector + machine state of DataflowFlexTemplateJob + properties: + conditions: + description: Conditions represent the latest available observations + of the object's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + jobId: + type: string + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + format: int64 + type: integer + state: + description: |- + The current state of the job. + + Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise + specified. + + A job in the `JOB_STATE_RUNNING` state may asynchronously enter a + terminal state. After a job has reached a terminal state, no + further state updates may be made. + + This field may be mutated by the Cloud Dataflow service; + callers cannot mutate it. + type: string + type: + description: The type of Cloud Dataflow job. + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: stable + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: dataflowjobs.dataflow.cnrm.cloud.google.com +spec: + group: dataflow.cnrm.cloud.google.com + names: + categories: + - gcp + kind: DataflowJob + plural: dataflowjobs + shortNames: + - gcpdataflowjob + - gcpdataflowjobs + singular: dataflowjob + preserveUnknownFields: false + scope: Namespaced + versions: - additionalPrinterColumns: - jsonPath: .metadata.creationTimestamp name: Age @@ -54274,305 +55146,15 @@ spec: items: type: string type: array - autoscalingAlgorithm: - description: The algorithm to use for autoscaling. - type: string - containerSpecGcsPath: - type: string enableStreamingEngine: - description: Immutable. Indicates if the job should use the streaming - engine feature. + description: Indicates if the job should use the streaming engine + feature. type: boolean ipConfiguration: description: The configuration for VM IPs. Options are "WORKER_IP_PUBLIC" or "WORKER_IP_PRIVATE". type: string - kmsKeyNameRef: - description: The name for the Cloud KMS key for the job. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - launcherMachineType: - description: The machine type to use for launching the job. The default - is n1-standard-1. - type: string - machineType: - description: The machine type to use for the job. - type: string - maxWorkers: - description: Immutable. The maximum number of Google Compute Engine - instances to be made available to your pipeline during execution, - from 1 to 1000. - type: integer - networkRef: - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - numWorkers: - description: Immutable. The initial number of Google Compute Engine - instances for the job. - type: integer - parameters: - type: object - x-kubernetes-preserve-unknown-fields: true - region: - description: Immutable. The region in which the created job should - run. - type: string - sdkContainerImage: - description: Docker registry location of container image to use for - the 'worker harness. Default is the container for the version of - the SDK. Note this field is only valid for portable pipelines. - type: string - serviceAccountEmailRef: - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `email` field of an `IAMServiceAccount` - resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - stagingLocation: - description: The Cloud Storage path to use for staging files. Must - be a valid Cloud Storage URL, beginning with gs://. - type: string - subnetworkRef: - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - tempLocation: - description: The Cloud Storage path to use for temporary files. Must - be a valid Cloud Storage URL, beginning with gs://. - type: string - transformNameMapping: - description: Only applicable when updating a pipeline. Map of transform - name prefixes of the job to be replaced with the corresponding name - prefixes of the new job. - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - containerSpecGcsPath - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - jobId: - type: string - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - state: - type: string - type: - description: The type of this job, selected from the JobType enum. - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.119.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: stable - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: dataflowjobs.dataflow.cnrm.cloud.google.com -spec: - group: dataflow.cnrm.cloud.google.com - names: - categories: - - gcp - kind: DataflowJob - plural: dataflowjobs - shortNames: - - gcpdataflowjob - - gcpdataflowjobs - singular: dataflowjob - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - additionalExperiments: - description: List of experiments that should be used by the job. An - example value is ["enable_stackdriver_agent_metrics"]. - items: - type: string - type: array - enableStreamingEngine: - description: Indicates if the job should use the streaming engine - feature. - type: boolean - ipConfiguration: - description: The configuration for VM IPs. Options are "WORKER_IP_PUBLIC" - or "WORKER_IP_PRIVATE". - type: string - kmsKeyRef: + kmsKeyRef: description: The name for the Cloud KMS key for the job. oneOf: - not: @@ -54788,13 +55370,12 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" cnrm.cloud.google.com/stability-level: alpha cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" name: dataformrepositories.dataform.cnrm.cloud.google.com spec: group: dataform.cnrm.cloud.google.com @@ -54802,6 +55383,7 @@ spec: categories: - gcp kind: DataformRepository + listKind: DataformRepositoryList plural: dataformrepositories shortNames: - gcpdataformrepository @@ -54829,44 +55411,143 @@ spec: name: v1alpha1 schema: openAPIV3Schema: + description: DataformRepository is the Schema for the dataform API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: properties: + displayName: + description: Optional. The repository's user-friendly name. + type: string gitRemoteSettings: description: Optional. If set, configures this repository to be linked to a Git remote. properties: - authenticationTokenSecretVersion: + authenticationTokenSecretVersionRef: description: The name of the Secret Manager secret version to use as an authentication token for Git operations. Must be in - the format projects/*/secrets/*/versions/*. - type: string + the format projects/* /secrets/* /versions/*. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object defaultBranch: description: The Git remote's default branch name. type: string - tokenStatus: - description: Indicates the status of the Git access token. https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories#TokenStatus. - type: string + sshAuthenticationConfig: + description: Authentication fields for remote uris using SSH protocol. + properties: + hostPublicKey: + description: Content of a public SSH key to verify an identity + of a remote Git host. + type: string + userPrivateKeySecretVersionRef: + description: The name of the Secret Manager secret version + to use as a ssh private key for Git operations. Must be + in the format projects/*/secrets/*/versions/* . + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object + required: + - hostPublicKey + - userPrivateKeySecretVersionRef + type: object url: description: The Git remote's URL. type: string required: - - authenticationTokenSecretVersion - defaultBranch - url type: object + npmrcEnvironmentVariablesSecretVersionRef: + description: Optional. The name of the Secret Manager secret version + to be used to interpolate variables into the .npmrc file for package + installation operations. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object projectRef: description: The project that this resource belongs to. oneOf: @@ -54885,13 +55566,18 @@ spec: - external properties: external: - description: 'Allowed value: The `name` field of a `Project` resource.' + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `Project` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `Project` resource. type: string type: object region: @@ -54902,6 +55588,39 @@ spec: creation and acquisition. When unset, the value of `metadata.name` is used as the default. type: string + serviceAccountRef: + description: Optional. The service account reference to run workflow + invocations under. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `email` field of an `IAMServiceAccount` resource. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + setAuthenticatedUserAdmin: + description: Optional. Input only. If set to true, the authenticated + user will be granted the roles/dataform.admin role on the created + repository. + type: boolean workspaceCompilationOverrides: description: Optional. If set, fields of workspaceCompilationOverrides override the default compilation settings that are specified in @@ -54927,8 +55646,8 @@ spec: status: properties: conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the DataformRepository's current state. items: properties: lastTransitionTime: @@ -54952,13 +55671,22 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the DataformReposity resource + in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer + observedState: + description: ObservedState is the state of the resource as most recently + observed in GCP. + type: object type: object required: - spec @@ -54967,18 +55695,12 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -55257,7 +55979,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -55552,7 +56274,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -57367,7 +58089,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -59309,7 +60031,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -59481,7 +60203,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60082,7 +60804,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60275,7 +60997,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61209,7 +61931,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61424,7 +62146,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61609,7 +62331,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61823,7 +62545,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62018,7 +62740,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62568,7 +63290,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62788,7 +63510,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -63886,7 +64608,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64095,7 +64817,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64289,7 +65011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64486,7 +65208,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64723,7 +65445,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -68899,7 +69621,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -69511,7 +70233,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -70987,7 +71709,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -71358,7 +72080,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -71743,7 +72465,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -71939,7 +72661,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -72911,7 +73633,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73090,7 +73812,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73286,7 +74008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73409,7 +74131,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73574,7 +74296,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74110,7 +74832,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74361,7 +75083,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74600,7 +75322,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74780,7 +75502,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75004,7 +75726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75146,7 +75868,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -75692,7 +76414,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -75914,7 +76636,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76243,7 +76965,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -76412,7 +77134,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -76599,7 +77321,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -76776,7 +77498,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -76920,7 +77642,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77083,7 +77805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77235,7 +77957,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77383,7 +78105,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77530,7 +78252,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77684,7 +78406,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77897,7 +78619,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78194,7 +78916,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -78285,10 +79007,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -78382,10 +79102,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -78425,7 +79143,9 @@ spec: type: string type: object hierarchyController: - description: Hierarchy Controller configuration for the cluster. + description: 'Hierarchy Controller is no longer available. + Use https://github.com/kubernetes-sigs/hierarchical-namespaces + instead.' properties: enableHierarchicalResourceQuota: description: Whether hierarchical resource quota is enabled @@ -78440,7 +79160,9 @@ spec: type: boolean type: object policyController: - description: Policy Controller configuration for the cluster. + description: '**DEPRECATED** Configuring Policy Controller through + the configmanagement feature is no longer recommended. Use the + policycontroller feature instead.' properties: auditIntervalSeconds: description: Sets the interval for Policy Controller Audit @@ -78735,7 +79457,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -79001,7 +79723,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -79366,7 +80088,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -79499,7 +80221,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -79657,7 +80379,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -79819,7 +80541,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80133,7 +80855,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80334,7 +81056,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80535,7 +81257,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80696,7 +81418,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80836,7 +81558,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81161,7 +81883,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81389,7 +82111,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81629,7 +82351,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81808,7 +82530,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81950,7 +82672,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -82308,7 +83030,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -82489,7 +83211,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -82785,7 +83507,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -82952,7 +83674,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83078,7 +83800,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83232,7 +83954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83924,7 +84646,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84083,7 +84805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84288,7 +85010,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -84471,7 +85193,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84695,7 +85417,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84859,7 +85581,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85072,7 +85794,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85289,7 +86011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85442,7 +86164,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85635,7 +86357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85824,7 +86546,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86004,7 +86726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86018,6 +86740,7 @@ spec: categories: - gcp kind: KMSKeyRing + listKind: KMSKeyRingList plural: kmskeyrings shortNames: - gcpkmskeyring @@ -86026,6 +86749,333 @@ spec: preserveUnknownFields: false scope: Namespaced versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: KMSKeyRing represents a KMS KeyRing. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + location: + description: Immutable. The location for the KeyRing. A full list + of valid locations can be found by running 'gcloud kms locations + list'. + type: string + resourceID: + description: Immutable. Optional. The name of the resource. Used for + creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + required: + - location + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observations + of the KMSKeyRing's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + format: int64 + type: integer + selfLink: + description: The self link of the created KeyRing in the format projects/{project}/locations/{location}/keyRings/{name}. + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: alpha + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: kmssecretciphertexts.kms.cnrm.cloud.google.com +spec: + group: kms.cnrm.cloud.google.com + names: + categories: + - gcp + kind: KMSSecretCiphertext + plural: kmssecretciphertexts + shortNames: + - gcpkmssecretciphertext + - gcpkmssecretciphertexts + singular: kmssecretciphertext + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + additionalAuthenticatedData: + description: Immutable. The additional authenticated data used for + integrity checks during encryption and decryption. + oneOf: + - not: + required: + - valueFrom + required: + - value + - not: + required: + - value + required: + - valueFrom + properties: + value: + description: Value of the field. Cannot be used if 'valueFrom' + is specified. + type: string + valueFrom: + description: Source for the field's value. Cannot be used if 'value' + is specified. + properties: + secretKeyRef: + description: Reference to a value with the given key in the + given Secret in the resource's namespace. + properties: + key: + description: Key that identifies the value to be extracted. + type: string + name: + description: Name of the Secret to extract a value from. + type: string + required: + - name + - key + type: object + type: object + type: object + cryptoKey: + description: |- + Immutable. The full name of the CryptoKey that will be used to encrypt the provided plaintext. + Format: ''projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}/cryptoKeys/{{cryptoKey}}''. + type: string + plaintext: + description: Immutable. The plaintext to be encrypted. + oneOf: + - not: + required: + - valueFrom + required: + - value + - not: + required: + - value + required: + - valueFrom + properties: + value: + description: Value of the field. Cannot be used if 'valueFrom' + is specified. + type: string + valueFrom: + description: Source for the field's value. Cannot be used if 'value' + is specified. + properties: + secretKeyRef: + description: Reference to a value with the given key in the + given Secret in the resource's namespace. + properties: + key: + description: Key that identifies the value to be extracted. + type: string + name: + description: Name of the Secret to extract a value from. + type: string + required: + - name + - key + type: object + type: object + type: object + resourceID: + description: Immutable. Optional. The service-generated ciphertext + of the resource. Used for acquisition only. Leave unset to create + a new resource. + type: string + required: + - cryptoKey + - plaintext + type: object + status: + properties: + ciphertext: + description: Contains the result of encrypting the provided plaintext, + encoded in base64. + type: string + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/dcl2crd: "true" + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: stable + cnrm.cloud.google.com/system: "true" + name: logginglogbuckets.logging.cnrm.cloud.google.com +spec: + group: logging.cnrm.cloud.google.com + names: + categories: + - gcp + kind: LoggingLogBucket + plural: logginglogbuckets + shortNames: + - gcplogginglogbucket + - gcplogginglogbuckets + singular: logginglogbucket + preserveUnknownFields: false + scope: Namespaced + versions: - additionalPrinterColumns: - jsonPath: .metadata.creationTimestamp name: Age @@ -86047,337 +87097,6 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - location: - description: |- - Immutable. The location for the KeyRing. - A full list of valid locations can be found by running 'gcloud kms locations list'. - type: string - resourceID: - description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. - type: string - required: - - location - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - selfLink: - description: The self link of the created KeyRing in the format projects/{project}/locations/{location}/keyRings/{name}. - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.119.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: kmssecretciphertexts.kms.cnrm.cloud.google.com -spec: - group: kms.cnrm.cloud.google.com - names: - categories: - - gcp - kind: KMSSecretCiphertext - plural: kmssecretciphertexts - shortNames: - - gcpkmssecretciphertext - - gcpkmssecretciphertexts - singular: kmssecretciphertext - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - additionalAuthenticatedData: - description: Immutable. The additional authenticated data used for - integrity checks during encryption and decryption. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom - properties: - value: - description: Value of the field. Cannot be used if 'valueFrom' - is specified. - type: string - valueFrom: - description: Source for the field's value. Cannot be used if 'value' - is specified. - properties: - secretKeyRef: - description: Reference to a value with the given key in the - given Secret in the resource's namespace. - properties: - key: - description: Key that identifies the value to be extracted. - type: string - name: - description: Name of the Secret to extract a value from. - type: string - required: - - name - - key - type: object - type: object - type: object - cryptoKey: - description: |- - Immutable. The full name of the CryptoKey that will be used to encrypt the provided plaintext. - Format: ''projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}/cryptoKeys/{{cryptoKey}}''. - type: string - plaintext: - description: Immutable. The plaintext to be encrypted. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom - properties: - value: - description: Value of the field. Cannot be used if 'valueFrom' - is specified. - type: string - valueFrom: - description: Source for the field's value. Cannot be used if 'value' - is specified. - properties: - secretKeyRef: - description: Reference to a value with the given key in the - given Secret in the resource's namespace. - properties: - key: - description: Key that identifies the value to be extracted. - type: string - name: - description: Name of the Secret to extract a value from. - type: string - required: - - name - - key - type: object - type: object - type: object - resourceID: - description: Immutable. Optional. The service-generated ciphertext - of the resource. Used for acquisition only. Leave unset to create - a new resource. - type: string - required: - - cryptoKey - - plaintext - type: object - status: - properties: - ciphertext: - description: Contains the result of encrypting the provided plaintext, - encoded in base64. - type: string - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.119.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/dcl2crd: "true" - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: stable - cnrm.cloud.google.com/system: "true" - name: logginglogbuckets.logging.cnrm.cloud.google.com -spec: - group: logging.cnrm.cloud.google.com - names: - categories: - - gcp - kind: LoggingLogBucket - plural: logginglogbuckets - shortNames: - - gcplogginglogbucket - - gcplogginglogbuckets - singular: logginglogbucket - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - properties: - apiVersion: description: 'apiVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' @@ -86624,7 +87343,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -86899,7 +87618,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -87355,7 +88074,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -87759,7 +88478,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -88063,7 +88782,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -88400,7 +89119,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -88576,7 +89295,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -89431,9 +90150,8 @@ spec: severity: description: |- The severity of an alert policy indicates how important - incidents generated by that policy are. The severity level - will be displayed on the Incident detail page and in notifications. - Possible values: ["CRITICAL", "ERROR", "WARNING"]. + incidents generated by that policy are. The severity level will be displayed on + the Incident detail page and in notifications. Possible values: ["CRITICAL", "ERROR", "WARNING"]. type: string required: - combiner @@ -89514,10 +90232,9 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: - cnrm.cloud.google.com/dcl2crd: "true" cnrm.cloud.google.com/managed-by-kcc: "true" cnrm.cloud.google.com/stability-level: stable cnrm.cloud.google.com/system: "true" @@ -89583,9 +90300,7 @@ spec: weight: description: The relative weight of this column. The column weight is used to adjust the width of columns on the screen - (relative to peers). Greater the weight, greater the width - of the column on the screen. If omitted, a value of 1 - is used while rendering. + (relative to peers). format: int64 type: integer widgets: @@ -89593,23 +90308,195 @@ spec: this column. items: properties: + alertChart: + description: A chart of alert policy data. + properties: + alertPolicyRef: + description: Required. A reference to the MonitoringAlertPolicy. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The MonitoringAlertPolicy link + in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", + when not managed by KCC. + type: string + name: + description: The `name` field of a `MonitoringAlertPolicy` + resource. + type: string + namespace: + description: The `namespace` field of a `MonitoringAlertPolicy` + resource. + type: string + type: object + required: + - alertPolicyRef + type: object blank: description: A blank space. type: object + collapsibleGroup: + description: A widget that groups the other widgets. + All widgets that are within the area spanned by + the grouping widget are considered member widgets. + properties: + collapsed: + description: The collapsed state of the widget + on first page load. + type: boolean + type: object + errorReportingPanel: + description: A widget that displays a list of error + groups. + properties: + projectRefs: + description: The projects from which to gather + errors. + items: + description: The Project that this resource + belongs to. + oneOf: + - not: + required: + - external + required: + - name + - kind + - not: + anyOf: + - required: + - name + - required: + - namespace + - required: + - kind + required: + - external + properties: + external: + description: The `projectID` field of a + project, when not managed by KCC. + type: string + kind: + description: The kind of the Project resource; + optional but must be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` + resource. + type: string + namespace: + description: The `namespace` field of a + `Project` resource. + type: string + type: object + type: array + services: + description: An identifier of the service, such + as the name of the executable, job, or Google + App Engine service name. This field is expected + to have a low number of values that are relatively + stable over time, as opposed to `version`, which + can be changed whenever new code is deployed. + items: + type: string + type: array + versions: + description: Represents the source code version + that the developer provided, which could represent + a version label or a Git SHA-1 hash, for example. + For App Engine standard environment, the version + is set to the version of the app. + items: + type: string + type: array + type: object + id: + description: Optional. The widget id. Ids may be made + up of alphanumerics, dashes and underscores. Widget + ids are optional. + type: string + incidentList: + description: A widget that shows list of incidents. + properties: + monitoredResources: + description: Optional. The monitored resource + for which incidents are listed. + items: + properties: + labels: + additionalProperties: + type: string + description: Required. Values for all of + the labels listed in the associated monitored + resource descriptor. + type: object + type: + description: Required. The monitored resource + type. This field must match the `type` + field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] + object. + type: string + type: object + type: array + policyRefs: + description: Optional. A list of alert policies + to filter the incident list by. + items: + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The MonitoringAlertPolicy link + in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", + when not managed by KCC. + type: string + name: + description: The `name` field of a `MonitoringAlertPolicy` + resource. + type: string + namespace: + description: The `namespace` field of a + `MonitoringAlertPolicy` resource. + type: string + type: object + type: array + type: object logsPanel: description: A widget that shows a stream of logs. properties: filter: description: A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). - Only log entries that match the filter are returned. An - empty filter matches all log entries. type: string resourceNames: description: The names of logging resources to - collect logs for. Currently only projects are - supported. If empty, the widget will default - to the host project. + collect logs for. items: oneOf: - not: @@ -89647,9 +90534,418 @@ spec: type: object type: array type: object + pieChart: + description: A widget that displays timeseries data + as a pie chart. + properties: + chartType: + description: Required. Indicates the visualization + type for the PieChart. + type: string + dataSets: + description: Required. The queries for the chart's + data. + items: + properties: + minAlignmentPeriod: + description: Optional. The lower bound on + data point frequency for this data set. + type: string + sliceNameTemplate: + description: Optional. A template for the + name of the slice. + type: string + timeSeriesQuery: + description: Required. The query for the + PieChart. See, `google.monitoring.dashboard.v1.TimeSeriesQuery`. + properties: + outputFullDuration: + description: Optional. If set, Cloud + Monitoring will treat the full query + duration as the alignment period so + that there will be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string + timeSeriesFilter: + description: Filter parameters to fetch + time series. + properties: + aggregation: + description: By default, the raw + time series data is returned. + Use this field to combine multiple + time series for different views + of the data. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + filter: + description: Required. The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + pickTimeSeriesFilter: + description: Ranking based time + series filter. + properties: + direction: + description: How to use the + ranking to select time series + that pass through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to + other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after `aggregation` is applied. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + required: + - filter + type: object + timeSeriesFilterRatio: + description: Parameters to fetch a ratio + between two time series filters. + properties: + denominator: + description: The denominator of + the ratio. + properties: + aggregation: + description: By default, the + raw time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. + type: string + groupByFields: + description: The set of + fields to preserve when + `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. + type: string + type: object + filter: + description: The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric + types, resources, and projects + to query. + type: string + required: + - filter + type: object + numerator: + description: The numerator of the + ratio. + properties: + aggregation: + description: By default, the + raw time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. + type: string + groupByFields: + description: The set of + fields to preserve when + `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. + type: string + type: object + filter: + description: The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric + types, resources, and projects + to query. + type: string + required: + - filter + type: object + pickTimeSeriesFilter: + description: Ranking based time + series filter. + properties: + direction: + description: How to use the + ranking to select time series + that pass through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to + other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after the ratio is computed. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + type: object + timeSeriesQueryLanguage: + description: A query used to fetch time + series with MQL. + type: string + unitOverride: + description: The unit of data contained + in fetched time series. If non-empty, + this unit will override any unit that + accompanies fetched data. The format + is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + field in `MetricDescriptor`. + type: string + type: object + required: + - timeSeriesQuery + type: object + type: array + showLabels: + description: Optional. Indicates whether or not + the pie chart should show slices' labels + type: boolean + required: + - chartType + - dataSets + type: object scorecard: description: A scorecard summarizing time series data. properties: + blankView: + description: Will cause the `Scorecard` to show + only the value, with no indicator to its value + relative to its thresholds. + type: object gaugeView: description: Will cause the scorecard to show a gauge chart. @@ -89675,11 +90971,7 @@ spec: description: The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a - time series query. For example, if the data - is published once every 10 minutes it would - not make sense to fetch and align data at - one minute intervals. This field is optional - and exists only as a hint. + time series query. type: string sparkChartType: description: Required. The type of sparkchart @@ -89689,48 +90981,9 @@ spec: - sparkChartType type: object thresholds: - description: |- - The thresholds used to determine the state of the scorecard given the - time series' current value. For an actual value x, the scorecard is in a - danger state if x is less than or equal to a danger threshold that triggers - below, or greater than or equal to a danger threshold that triggers above. - Similarly, if x is above/below a warning threshold that triggers - above/below, then the scorecard is in a warning state - unless x also puts - it in a danger state. (Danger trumps warning.) - - - As an example, consider a scorecard with the following four thresholds: - - - ``` - { - value: 90, - category: 'DANGER', - trigger: 'ABOVE', - }, - { - value: 70, - category: 'WARNING', - trigger: 'ABOVE', - }, - { - value: 10, - category: 'DANGER', - trigger: 'BELOW', - }, - { - value: 20, - category: 'WARNING', - trigger: 'BELOW', - } - ``` - - - Then: values less than or equal to 10 would put the scorecard in a DANGER - state, values greater than 10 but less than or equal to 20 a WARNING state, - values strictly between 20 and 70 an OK state, values greater than or equal - to 70 but less than 90 a WARNING state, and values greater than or equal to - 90 a DANGER state. + description: The thresholds used to determine + the state of the scorecard given the time series' + current value. items: properties: color: @@ -89745,6 +90998,11 @@ spec: label: description: A label for the threshold. type: string + targetAxis: + description: The target axis to use for + plotting the threshold. Target axis is + not allowed in a Scorecard. + type: string value: description: The value of the threshold. The value should be defined in the native @@ -89757,6 +91015,16 @@ spec: description: Required. Fields for querying time series data from the Stackdriver metrics API. properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as the + alignment period so that there will be only + 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time series + with PromQL. + type: string timeSeriesFilter: description: Filter parameters to fetch time series. @@ -89768,89 +91036,42 @@ spec: different views of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object filter: @@ -89886,89 +91107,42 @@ spec: after `aggregation` is applied. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object required: @@ -89983,101 +91157,52 @@ spec: properties: aggregation: description: By default, the raw time - series data is returned. Use this - field to combine multiple time series - for different views of the data. + series data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -90089,101 +91214,52 @@ spec: properties: aggregation: description: By default, the raw time - series data is returned. Use this - field to combine multiple time series - for different views of the data. + series data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -90217,89 +91293,42 @@ spec: after the ratio is computed. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object type: object @@ -90319,6 +91348,22 @@ spec: required: - timeSeriesQuery type: object + sectionHeader: + description: A widget that defines a section header + for easier navigation of the dashboard. + properties: + dividerBelow: + description: Whether to insert a divider below + the section in the table of contents + type: boolean + subtitle: + description: The subtitle of the section + type: string + type: object + singleViewGroup: + description: A widget that groups the other widgets + by using a dropdown menu. + type: object text: description: A raw string or markdown displaying textual content. @@ -90329,52 +91374,101 @@ spec: format: description: How the text content is formatted. type: string - type: object - title: - description: Optional. The title of the widget. - type: string - xyChart: - description: A chart of time series data. - properties: - chartOptions: - description: Display options for the chart. + style: + description: How the text is styled properties: - mode: - description: The chart mode. + backgroundColor: + description: The background color as a hex + string. "#RRGGBB" or "#RGB" + type: string + fontSize: + description: Font sizes for both the title + and content. The title will still be larger + relative to the content. + type: string + horizontalAlignment: + description: The horizontal alignment of both + the title and content + type: string + padding: + description: The amount of padding around + the widget + type: string + pointerLocation: + description: The pointer location for this + widget (also sometimes called a "tail") + type: string + textColor: + description: The text color as a hex string. + "#RRGGBB" or "#RGB" + type: string + verticalAlignment: + description: The vertical alignment of both + the title and content type: string type: object + type: object + timeSeriesTable: + description: A widget that displays time series data + in a tabular format. + properties: + columnSettings: + description: Optional. The list of the persistent + column settings for the table. + items: + properties: + column: + description: Required. The id of the column. + type: string + visible: + description: Required. Whether the column + should be visible on page load. + type: boolean + required: + - column + - visible + type: object + type: array dataSets: description: Required. The data displayed in this - chart. + table. items: properties: - legendTemplate: - description: A template string for naming - `TimeSeries` in the resulting data set. - This should be a string with interpolations - of the form `${label_name}`, which will - resolve to the label's value. - type: string minAlignmentPeriod: description: Optional. The lower bound on - data point frequency for this data set, - implemented by specifying the minimum - alignment period to use in a time series - query For example, if the data is published - once every 10 minutes, the `min_alignment_period` - should be at least 10 minutes. It would - not make sense to fetch and align data - at one minute intervals. + data point frequency for this data set. type: string - plotType: - description: How this data should be plotted - on the chart. + tableDisplayOptions: + description: Optional. Table display options + for configuring how the table is rendered. + properties: + shownColumns: + description: Optional. This field is + unused and has been replaced by TimeSeriesTable.column_settings + items: + type: string + type: array + type: object + tableTemplate: + description: Optional. A template string + for naming `TimeSeries` in the resulting + data set. type: string timeSeriesQuery: description: Required. Fields for querying time series data from the Stackdriver metrics API. properties: + outputFullDuration: + description: Optional. If set, Cloud + Monitoring will treat the full query + duration as the alignment period so + that there will be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string timeSeriesFilter: description: Filter parameters to fetch time series. @@ -90387,93 +91481,46 @@ spec: of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the - same value for each of the - grouping fields. Each individual - time series is a member of - exactly one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is not - possible to reduce across - different resource types, - so this field implicitly contains - `resource.type`. Fields not - specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same - resource type, then the time - series are aggregated into - a single output time series. - If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. type: string type: object filter: @@ -90511,93 +91558,46 @@ spec: after `aggregation` is applied. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the - same value for each of the - grouping fields. Each individual - time series is a member of - exactly one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is not - possible to reduce across - different resource types, - so this field implicitly contains - `resource.type`. Fields not - specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same - resource type, then the time - series are aggregated into - a single output time series. - If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. type: string type: object required: @@ -90614,106 +91614,58 @@ spec: aggregation: description: By default, the raw time series data is returned. - Use this field to combine - multiple time series for different - views of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time - series are partitioned - into subsets prior to - applying the aggregation - operation. Each subset - contains time series that - have the same value for - each of the grouping fields. - Each individual time series - is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is - not possible to reduce - across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If - `group_by_fields` is not - specified and all the - time series have the same - resource type, then the - time series are aggregated - into a single output time - series. If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. type: string type: object filter: - description: Required. The [monitoring + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects @@ -90729,106 +91681,58 @@ spec: aggregation: description: By default, the raw time series data is returned. - Use this field to combine - multiple time series for different - views of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time - series are partitioned - into subsets prior to - applying the aggregation - operation. Each subset - contains time series that - have the same value for - each of the grouping fields. - Each individual time series - is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is - not possible to reduce - across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If - `group_by_fields` is not - specified and all the - time series have the same - resource type, then the - time series are aggregated - into a single output time - series. If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. type: string type: object filter: - description: Required. The [monitoring + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects @@ -90866,93 +91770,46 @@ spec: after the ratio is computed. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the - same value for each of the - grouping fields. Each individual - time series is a member of - exactly one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is not - possible to reduce across - different resource types, - so this field implicitly contains - `resource.type`. Fields not - specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same - resource type, then the time - series are aggregated into - a single output time series. - If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. type: string type: object type: object @@ -90969,7 +91826,420 @@ spec: field in `MetricDescriptor`. type: string type: object - required: + type: object + type: array + metricVisualization: + description: Optional. Store rendering strategy + type: string + required: + - dataSets + type: object + title: + description: Optional. The title of the widget. + type: string + xyChart: + description: A chart of time series data. + properties: + chartOptions: + description: Display options for the chart. + properties: + mode: + description: The chart mode. + type: string + type: object + dataSets: + description: Required. The data displayed in this + chart. + items: + properties: + legendTemplate: + description: A template string for naming + `TimeSeries` in the resulting data set. + type: string + minAlignmentPeriod: + description: Optional. The lower bound on + data point frequency for this data set. + type: string + plotType: + description: How this data should be plotted + on the chart. + type: string + targetAxis: + description: Optional. The target axis to + use for plotting the metric. + type: string + timeSeriesQuery: + description: Fields for querying time series + data from the Stackdriver metrics API. + properties: + outputFullDuration: + description: Optional. If set, Cloud + Monitoring will treat the full query + duration as the alignment period so + that there will be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string + timeSeriesFilter: + description: Filter parameters to fetch + time series. + properties: + aggregation: + description: By default, the raw + time series data is returned. + Use this field to combine multiple + time series for different views + of the data. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + filter: + description: Required. The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + pickTimeSeriesFilter: + description: Ranking based time + series filter. + properties: + direction: + description: How to use the + ranking to select time series + that pass through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to + other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after `aggregation` is applied. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + required: + - filter + type: object + timeSeriesFilterRatio: + description: Parameters to fetch a ratio + between two time series filters. + properties: + denominator: + description: The denominator of + the ratio. + properties: + aggregation: + description: By default, the + raw time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. + type: string + groupByFields: + description: The set of + fields to preserve when + `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. + type: string + type: object + filter: + description: The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric + types, resources, and projects + to query. + type: string + required: + - filter + type: object + numerator: + description: The numerator of the + ratio. + properties: + aggregation: + description: By default, the + raw time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. + type: string + groupByFields: + description: The set of + fields to preserve when + `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. + type: string + type: object + filter: + description: The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric + types, resources, and projects + to query. + type: string + required: + - filter + type: object + pickTimeSeriesFilter: + description: Ranking based time + series filter. + properties: + direction: + description: How to use the + ranking to select time series + that pass through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to + other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after the ratio is computed. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + type: object + timeSeriesQueryLanguage: + description: A query used to fetch time + series with MQL. + type: string + unitOverride: + description: The unit of data contained + in fetched time series. If non-empty, + this unit will override any unit that + accompanies fetched data. The format + is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + field in `MetricDescriptor`. + type: string + type: object + required: - timeSeriesQuery type: object type: array @@ -90990,6 +92260,11 @@ spec: label: description: A label for the threshold. type: string + targetAxis: + description: The target axis to use for + plotting the threshold. Target axis is + not allowed in a Scorecard. + type: string value: description: The value of the threshold. The value should be defined in the native @@ -91000,11 +92275,7 @@ spec: type: array timeshiftDuration: description: The duration used to display a comparison - chart. A comparison chart simultaneously shows - values from two similar-length time periods - (e.g., week-over-week metrics). The duration - must be positive, and it can only be applied - to charts with data sets of LINE plot type. + chart. type: string xAxis: description: The properties applied to the x-axis. @@ -91017,6 +92288,17 @@ spec: linear scale is used. type: string type: object + y2Axis: + description: The properties applied to the y2-axis. + properties: + label: + description: The label of the axis. + type: string + scale: + description: The axis scale. By default, a + linear scale is used. + type: string + type: object yAxis: description: The properties applied to the y-axis. properties: @@ -91036,6 +92318,29 @@ spec: type: object type: array type: object + dashboardFilters: + description: Filters to reduce the amount of data charted based on + the filter criteria. + items: + properties: + filterType: + description: The specified filter type + type: string + labelKey: + description: Required. The key for the label + type: string + stringValue: + description: A variable-length string value. + type: string + templateVariable: + description: The placeholder text that can be referenced in + a filter string or MQL query. If omitted, the dashboard filter + will be applied to all relevant widgets in the dashboard. + type: string + required: + - labelKey + type: object + type: array displayName: description: Required. The mutable, human-readable name. type: string @@ -91054,22 +92359,192 @@ spec: the columns row-first. items: properties: + alertChart: + description: A chart of alert policy data. + properties: + alertPolicyRef: + description: Required. A reference to the MonitoringAlertPolicy. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The MonitoringAlertPolicy link in the + form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", + when not managed by KCC. + type: string + name: + description: The `name` field of a `MonitoringAlertPolicy` + resource. + type: string + namespace: + description: The `namespace` field of a `MonitoringAlertPolicy` + resource. + type: string + type: object + required: + - alertPolicyRef + type: object blank: description: A blank space. type: object + collapsibleGroup: + description: A widget that groups the other widgets. All + widgets that are within the area spanned by the grouping + widget are considered member widgets. + properties: + collapsed: + description: The collapsed state of the widget on first + page load. + type: boolean + type: object + errorReportingPanel: + description: A widget that displays a list of error groups. + properties: + projectRefs: + description: The projects from which to gather errors. + items: + description: The Project that this resource belongs + to. + oneOf: + - not: + required: + - external + required: + - name + - kind + - not: + anyOf: + - required: + - name + - required: + - namespace + - required: + - kind + required: + - external + properties: + external: + description: The `projectID` field of a project, + when not managed by KCC. + type: string + kind: + description: The kind of the Project resource; + optional but must be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` + resource. + type: string + type: object + type: array + services: + description: An identifier of the service, such as the + name of the executable, job, or Google App Engine + service name. This field is expected to have a low + number of values that are relatively stable over time, + as opposed to `version`, which can be changed whenever + new code is deployed. + items: + type: string + type: array + versions: + description: Represents the source code version that + the developer provided, which could represent a version + label or a Git SHA-1 hash, for example. For App Engine + standard environment, the version is set to the version + of the app. + items: + type: string + type: array + type: object + id: + description: Optional. The widget id. Ids may be made up + of alphanumerics, dashes and underscores. Widget ids are + optional. + type: string + incidentList: + description: A widget that shows list of incidents. + properties: + monitoredResources: + description: Optional. The monitored resource for which + incidents are listed. + items: + properties: + labels: + additionalProperties: + type: string + description: Required. Values for all of the labels + listed in the associated monitored resource + descriptor. + type: object + type: + description: Required. The monitored resource + type. This field must match the `type` field + of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] + object. + type: string + type: object + type: array + policyRefs: + description: Optional. A list of alert policies to filter + the incident list by. + items: + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The MonitoringAlertPolicy link in + the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", + when not managed by KCC. + type: string + name: + description: The `name` field of a `MonitoringAlertPolicy` + resource. + type: string + namespace: + description: The `namespace` field of a `MonitoringAlertPolicy` + resource. + type: string + type: object + type: array + type: object logsPanel: description: A widget that shows a stream of logs. properties: filter: description: A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). - Only log entries that match the filter are returned. An - empty filter matches all log entries. type: string resourceNames: description: The names of logging resources to collect - logs for. Currently only projects are supported. If - empty, the widget will default to the host project. + logs for. items: oneOf: - not: @@ -91107,9 +92582,380 @@ spec: type: object type: array type: object + pieChart: + description: A widget that displays timeseries data as a + pie chart. + properties: + chartType: + description: Required. Indicates the visualization type + for the PieChart. + type: string + dataSets: + description: Required. The queries for the chart's data. + items: + properties: + minAlignmentPeriod: + description: Optional. The lower bound on data + point frequency for this data set. + type: string + sliceNameTemplate: + description: Optional. A template for the name + of the slice. + type: string + timeSeriesQuery: + description: Required. The query for the PieChart. + See, `google.monitoring.dashboard.v1.TimeSeriesQuery`. + properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as the + alignment period so that there will be only + 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time series + with PromQL. + type: string + timeSeriesFilter: + description: Filter parameters to fetch time + series. + properties: + aggregation: + description: By default, the raw time + series data is returned. Use this field + to combine multiple time series for + different views of the data. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields to + preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. + type: string + type: object + filter: + description: Required. The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, resources, + and projects to query. + type: string + pickTimeSeriesFilter: + description: Ranking based time series + filter. + properties: + direction: + description: How to use the ranking + to select time series that pass + through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` is + applied to each time series independently + to produce the value which will + be used to compare the time series + to other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after `aggregation` is applied. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields to + preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. + type: string + type: object + required: + - filter + type: object + timeSeriesFilterRatio: + description: Parameters to fetch a ratio between + two time series filters. + properties: + denominator: + description: The denominator of the ratio. + properties: + aggregation: + description: By default, the raw time + series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + filter: + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + required: + - filter + type: object + numerator: + description: The numerator of the ratio. + properties: + aggregation: + description: By default, the raw time + series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + filter: + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + required: + - filter + type: object + pickTimeSeriesFilter: + description: Ranking based time series + filter. + properties: + direction: + description: How to use the ranking + to select time series that pass + through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` is + applied to each time series independently + to produce the value which will + be used to compare the time series + to other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after the ratio is computed. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields to + preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. + type: string + type: object + type: object + timeSeriesQueryLanguage: + description: A query used to fetch time series + with MQL. + type: string + unitOverride: + description: The unit of data contained in + fetched time series. If non-empty, this + unit will override any unit that accompanies + fetched data. The format is the same as + the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + field in `MetricDescriptor`. + type: string + type: object + required: + - timeSeriesQuery + type: object + type: array + showLabels: + description: Optional. Indicates whether or not the + pie chart should show slices' labels + type: boolean + required: + - chartType + - dataSets + type: object scorecard: description: A scorecard summarizing time series data. properties: + blankView: + description: Will cause the `Scorecard` to show only + the value, with no indicator to its value relative + to its thresholds. + type: object gaugeView: description: Will cause the scorecard to show a gauge chart. @@ -91135,10 +92981,6 @@ spec: description: The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a time series query. - For example, if the data is published once every - 10 minutes it would not make sense to fetch and - align data at one minute intervals. This field - is optional and exists only as a hint. type: string sparkChartType: description: Required. The type of sparkchart to @@ -91148,48 +92990,8 @@ spec: - sparkChartType type: object thresholds: - description: |- - The thresholds used to determine the state of the scorecard given the - time series' current value. For an actual value x, the scorecard is in a - danger state if x is less than or equal to a danger threshold that triggers - below, or greater than or equal to a danger threshold that triggers above. - Similarly, if x is above/below a warning threshold that triggers - above/below, then the scorecard is in a warning state - unless x also puts - it in a danger state. (Danger trumps warning.) - - - As an example, consider a scorecard with the following four thresholds: - - - ``` - { - value: 90, - category: 'DANGER', - trigger: 'ABOVE', - }, - { - value: 70, - category: 'WARNING', - trigger: 'ABOVE', - }, - { - value: 10, - category: 'DANGER', - trigger: 'BELOW', - }, - { - value: 20, - category: 'WARNING', - trigger: 'BELOW', - } - ``` - - - Then: values less than or equal to 10 would put the scorecard in a DANGER - state, values greater than 10 but less than or equal to 20 a WARNING state, - values strictly between 20 and 70 an OK state, values greater than or equal - to 70 but less than 90 a WARNING state, and values greater than or equal to - 90 a DANGER state. + description: The thresholds used to determine the state + of the scorecard given the time series' current value. items: properties: color: @@ -91203,6 +93005,11 @@ spec: label: description: A label for the threshold. type: string + targetAxis: + description: The target axis to use for plotting + the threshold. Target axis is not allowed in + a Scorecard. + type: string value: description: The value of the threshold. The value should be defined in the native scale of the @@ -91215,6 +93022,15 @@ spec: description: Required. Fields for querying time series data from the Stackdriver metrics API. properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as the alignment + period so that there will be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time series with + PromQL. + type: string timeSeriesFilter: description: Filter parameters to fetch time series. properties: @@ -91225,85 +93041,37 @@ spec: the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` specifies + a time interval, in seconds, that is used + to divide the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. This will + be done before the per-series aligner + can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation to + be used to combine time series into a + single time series, where the value of + each data point in the resulting series + is a function of all the already aligned + values in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` is specified. - The `group_by_fields` determine how the - time series are partitioned into subsets - prior to applying the aggregation operation. - Each subset contains time series that - have the same value for each of the grouping - fields. Each individual time series is - a member of exactly one subset. The `cross_series_reducer` - is applied to each subset of time series. - It is not possible to reduce across different - resource types, so this field implicitly - contains `resource.type`. Fields not - specified in `group_by_fields` are aggregated - away. If `group_by_fields` is not specified - and all the time series have the same - resource type, then the time series are - aggregated into a single output time series. - If `cross_series_reducer` is not defined, - this field is ignored. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes how + to bring the data points in a single time + series into temporal alignment. Except + for `ALIGN_NONE`, all alignments cause + all the data points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point for each + `alignment_period` with end timestamp + at the end of the period. type: string type: object filter: @@ -91335,85 +93103,37 @@ spec: `aggregation` is applied. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` specifies + a time interval, in seconds, that is used + to divide the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. This will + be done before the per-series aligner + can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation to + be used to combine time series into a + single time series, where the value of + each data point in the resulting series + is a function of all the already aligned + values in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` is specified. - The `group_by_fields` determine how the - time series are partitioned into subsets - prior to applying the aggregation operation. - Each subset contains time series that - have the same value for each of the grouping - fields. Each individual time series is - a member of exactly one subset. The `cross_series_reducer` - is applied to each subset of time series. - It is not possible to reduce across different - resource types, so this field implicitly - contains `resource.type`. Fields not - specified in `group_by_fields` are aggregated - away. If `group_by_fields` is not specified - and all the time series have the same - resource type, then the time series are - aggregated into a single output time series. - If `cross_series_reducer` is not defined, - this field is ignored. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes how + to bring the data points in a single time + series into temporal alignment. Except + for `ALIGN_NONE`, all alignments cause + all the data points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point for each + `alignment_period` with end timestamp + at the end of the period. type: string type: object required: @@ -91428,96 +93148,45 @@ spec: properties: aggregation: description: By default, the raw time series - data is returned. Use this field to combine - multiple time series for different views - of the data. + data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. This + will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where the + value of each data point in the resulting + series is a function of all the already + aligned values in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` is specified. - The `group_by_fields` determine how - the time series are partitioned into - subsets prior to applying the aggregation - operation. Each subset contains time - series that have the same value for - each of the grouping fields. Each - individual time series is a member - of exactly one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, so - this field implicitly contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the time - series have the same resource type, - then the time series are aggregated - into a single output time series. - If `cross_series_reducer` is not defined, - this field is ignored. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in a + single time series into temporal alignment. + Except for `ALIGN_NONE`, all alignments + cause all the data points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point for + each `alignment_period` with end timestamp + at the end of the period. type: string type: object filter: - description: Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -91529,96 +93198,45 @@ spec: properties: aggregation: description: By default, the raw time series - data is returned. Use this field to combine - multiple time series for different views - of the data. + data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. This + will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where the + value of each data point in the resulting + series is a function of all the already + aligned values in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` is specified. - The `group_by_fields` determine how - the time series are partitioned into - subsets prior to applying the aggregation - operation. Each subset contains time - series that have the same value for - each of the grouping fields. Each - individual time series is a member - of exactly one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, so - this field implicitly contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the time - series have the same resource type, - then the time series are aggregated - into a single output time series. - If `cross_series_reducer` is not defined, - this field is ignored. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in a + single time series into temporal alignment. + Except for `ALIGN_NONE`, all alignments + cause all the data points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point for + each `alignment_period` with end timestamp + at the end of the period. type: string type: object filter: - description: Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -91649,85 +93267,37 @@ spec: the ratio is computed. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` specifies + a time interval, in seconds, that is used + to divide the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. This will + be done before the per-series aligner + can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation to + be used to combine time series into a + single time series, where the value of + each data point in the resulting series + is a function of all the already aligned + values in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` is specified. - The `group_by_fields` determine how the - time series are partitioned into subsets - prior to applying the aggregation operation. - Each subset contains time series that - have the same value for each of the grouping - fields. Each individual time series is - a member of exactly one subset. The `cross_series_reducer` - is applied to each subset of time series. - It is not possible to reduce across different - resource types, so this field implicitly - contains `resource.type`. Fields not - specified in `group_by_fields` are aggregated - away. If `group_by_fields` is not specified - and all the time series have the same - resource type, then the time series are - aggregated into a single output time series. - If `cross_series_reducer` is not defined, - this field is ignored. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes how + to bring the data points in a single time + series into temporal alignment. Except + for `ALIGN_NONE`, all alignments cause + all the data points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point for each + `alignment_period` with end timestamp + at the end of the period. type: string type: object type: object @@ -91746,6 +93316,22 @@ spec: required: - timeSeriesQuery type: object + sectionHeader: + description: A widget that defines a section header for + easier navigation of the dashboard. + properties: + dividerBelow: + description: Whether to insert a divider below the section + in the table of contents + type: boolean + subtitle: + description: The subtitle of the section + type: string + type: object + singleViewGroup: + description: A widget that groups the other widgets by using + a dropdown menu. + type: object text: description: A raw string or markdown displaying textual content. @@ -91756,6 +93342,424 @@ spec: format: description: How the text content is formatted. type: string + style: + description: How the text is styled + properties: + backgroundColor: + description: The background color as a hex string. + "#RRGGBB" or "#RGB" + type: string + fontSize: + description: Font sizes for both the title and content. + The title will still be larger relative to the + content. + type: string + horizontalAlignment: + description: The horizontal alignment of both the + title and content + type: string + padding: + description: The amount of padding around the widget + type: string + pointerLocation: + description: The pointer location for this widget + (also sometimes called a "tail") + type: string + textColor: + description: The text color as a hex string. "#RRGGBB" + or "#RGB" + type: string + verticalAlignment: + description: The vertical alignment of both the + title and content + type: string + type: object + type: object + timeSeriesTable: + description: A widget that displays time series data in + a tabular format. + properties: + columnSettings: + description: Optional. The list of the persistent column + settings for the table. + items: + properties: + column: + description: Required. The id of the column. + type: string + visible: + description: Required. Whether the column should + be visible on page load. + type: boolean + required: + - column + - visible + type: object + type: array + dataSets: + description: Required. The data displayed in this table. + items: + properties: + minAlignmentPeriod: + description: Optional. The lower bound on data + point frequency for this data set. + type: string + tableDisplayOptions: + description: Optional. Table display options for + configuring how the table is rendered. + properties: + shownColumns: + description: Optional. This field is unused + and has been replaced by TimeSeriesTable.column_settings + items: + type: string + type: array + type: object + tableTemplate: + description: Optional. A template string for naming + `TimeSeries` in the resulting data set. + type: string + timeSeriesQuery: + description: Required. Fields for querying time + series data from the Stackdriver metrics API. + properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as the + alignment period so that there will be only + 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time series + with PromQL. + type: string + timeSeriesFilter: + description: Filter parameters to fetch time + series. + properties: + aggregation: + description: By default, the raw time + series data is returned. Use this field + to combine multiple time series for + different views of the data. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields to + preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. + type: string + type: object + filter: + description: Required. The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, resources, + and projects to query. + type: string + pickTimeSeriesFilter: + description: Ranking based time series + filter. + properties: + direction: + description: How to use the ranking + to select time series that pass + through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` is + applied to each time series independently + to produce the value which will + be used to compare the time series + to other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after `aggregation` is applied. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields to + preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. + type: string + type: object + required: + - filter + type: object + timeSeriesFilterRatio: + description: Parameters to fetch a ratio between + two time series filters. + properties: + denominator: + description: The denominator of the ratio. + properties: + aggregation: + description: By default, the raw time + series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + filter: + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + required: + - filter + type: object + numerator: + description: The numerator of the ratio. + properties: + aggregation: + description: By default, the raw time + series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + filter: + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + required: + - filter + type: object + pickTimeSeriesFilter: + description: Ranking based time series + filter. + properties: + direction: + description: How to use the ranking + to select time series that pass + through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` is + applied to each time series independently + to produce the value which will + be used to compare the time series + to other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after the ratio is computed. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields to + preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. + type: string + type: object + type: object + timeSeriesQueryLanguage: + description: A query used to fetch time series + with MQL. + type: string + unitOverride: + description: The unit of data contained in + fetched time series. If non-empty, this + unit will override any unit that accompanies + fetched data. The format is the same as + the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + field in `MetricDescriptor`. + type: string + type: object + type: object + type: array + metricVisualization: + description: Optional. Store rendering strategy + type: string + required: + - dataSets type: object title: description: Optional. The title of the widget. @@ -91776,28 +93780,34 @@ spec: properties: legendTemplate: description: A template string for naming `TimeSeries` - in the resulting data set. This should be a - string with interpolations of the form `${label_name}`, - which will resolve to the label's value. + in the resulting data set. type: string minAlignmentPeriod: description: Optional. The lower bound on data - point frequency for this data set, implemented - by specifying the minimum alignment period to - use in a time series query For example, if the - data is published once every 10 minutes, the - `min_alignment_period` should be at least 10 - minutes. It would not make sense to fetch and - align data at one minute intervals. + point frequency for this data set. type: string plotType: description: How this data should be plotted on the chart. type: string + targetAxis: + description: Optional. The target axis to use + for plotting the metric. + type: string timeSeriesQuery: - description: Required. Fields for querying time - series data from the Stackdriver metrics API. + description: Fields for querying time series data + from the Stackdriver metrics API. properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as the + alignment period so that there will be only + 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time series + with PromQL. + type: string timeSeriesFilter: description: Filter parameters to fetch time series. @@ -91809,89 +93819,42 @@ spec: different views of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object filter: @@ -91927,89 +93890,42 @@ spec: after `aggregation` is applied. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object required: @@ -92024,101 +93940,52 @@ spec: properties: aggregation: description: By default, the raw time - series data is returned. Use this - field to combine multiple time series - for different views of the data. + series data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -92130,101 +93997,52 @@ spec: properties: aggregation: description: By default, the raw time - series data is returned. Use this - field to combine multiple time series - for different views of the data. + series data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -92258,89 +94076,42 @@ spec: after the ratio is computed. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object type: object @@ -92377,6 +94148,11 @@ spec: label: description: A label for the threshold. type: string + targetAxis: + description: The target axis to use for plotting + the threshold. Target axis is not allowed in + a Scorecard. + type: string value: description: The value of the threshold. The value should be defined in the native scale of the @@ -92387,11 +94163,7 @@ spec: type: array timeshiftDuration: description: The duration used to display a comparison - chart. A comparison chart simultaneously shows values - from two similar-length time periods (e.g., week-over-week - metrics). The duration must be positive, and it can - only be applied to charts with data sets of LINE plot - type. + chart. type: string xAxis: description: The properties applied to the x-axis. @@ -92404,6 +94176,17 @@ spec: scale is used. type: string type: object + y2Axis: + description: The properties applied to the y2-axis. + properties: + label: + description: The label of the axis. + type: string + scale: + description: The axis scale. By default, a linear + scale is used. + type: string + type: object yAxis: description: The properties applied to the y-axis. properties: @@ -92443,23 +94226,194 @@ spec: description: The informational widget contained in the tile. For example an `XyChart`. properties: + alertChart: + description: A chart of alert policy data. + properties: + alertPolicyRef: + description: Required. A reference to the MonitoringAlertPolicy. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The MonitoringAlertPolicy link + in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", + when not managed by KCC. + type: string + name: + description: The `name` field of a `MonitoringAlertPolicy` + resource. + type: string + namespace: + description: The `namespace` field of a `MonitoringAlertPolicy` + resource. + type: string + type: object + required: + - alertPolicyRef + type: object blank: description: A blank space. type: object + collapsibleGroup: + description: A widget that groups the other widgets. + All widgets that are within the area spanned by the + grouping widget are considered member widgets. + properties: + collapsed: + description: The collapsed state of the widget on + first page load. + type: boolean + type: object + errorReportingPanel: + description: A widget that displays a list of error + groups. + properties: + projectRefs: + description: The projects from which to gather errors. + items: + description: The Project that this resource belongs + to. + oneOf: + - not: + required: + - external + required: + - name + - kind + - not: + anyOf: + - required: + - name + - required: + - namespace + - required: + - kind + required: + - external + properties: + external: + description: The `projectID` field of a project, + when not managed by KCC. + type: string + kind: + description: The kind of the Project resource; + optional but must be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` + resource. + type: string + namespace: + description: The `namespace` field of a `Project` + resource. + type: string + type: object + type: array + services: + description: An identifier of the service, such + as the name of the executable, job, or Google + App Engine service name. This field is expected + to have a low number of values that are relatively + stable over time, as opposed to `version`, which + can be changed whenever new code is deployed. + items: + type: string + type: array + versions: + description: Represents the source code version + that the developer provided, which could represent + a version label or a Git SHA-1 hash, for example. + For App Engine standard environment, the version + is set to the version of the app. + items: + type: string + type: array + type: object + id: + description: Optional. The widget id. Ids may be made + up of alphanumerics, dashes and underscores. Widget + ids are optional. + type: string + incidentList: + description: A widget that shows list of incidents. + properties: + monitoredResources: + description: Optional. The monitored resource for + which incidents are listed. + items: + properties: + labels: + additionalProperties: + type: string + description: Required. Values for all of the + labels listed in the associated monitored + resource descriptor. + type: object + type: + description: Required. The monitored resource + type. This field must match the `type` field + of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] + object. + type: string + type: object + type: array + policyRefs: + description: Optional. A list of alert policies + to filter the incident list by. + items: + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The MonitoringAlertPolicy link + in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", + when not managed by KCC. + type: string + name: + description: The `name` field of a `MonitoringAlertPolicy` + resource. + type: string + namespace: + description: The `namespace` field of a `MonitoringAlertPolicy` + resource. + type: string + type: object + type: array + type: object logsPanel: description: A widget that shows a stream of logs. properties: filter: description: A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). - Only log entries that match the filter are returned. An - empty filter matches all log entries. type: string resourceNames: description: The names of logging resources to collect - logs for. Currently only projects are supported. - If empty, the widget will default to the host - project. + logs for. items: oneOf: - not: @@ -92497,9 +94451,402 @@ spec: type: object type: array type: object + pieChart: + description: A widget that displays timeseries data + as a pie chart. + properties: + chartType: + description: Required. Indicates the visualization + type for the PieChart. + type: string + dataSets: + description: Required. The queries for the chart's + data. + items: + properties: + minAlignmentPeriod: + description: Optional. The lower bound on + data point frequency for this data set. + type: string + sliceNameTemplate: + description: Optional. A template for the + name of the slice. + type: string + timeSeriesQuery: + description: Required. The query for the PieChart. + See, `google.monitoring.dashboard.v1.TimeSeriesQuery`. + properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as + the alignment period so that there will + be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string + timeSeriesFilter: + description: Filter parameters to fetch + time series. + properties: + aggregation: + description: By default, the raw time + series data is returned. Use this + field to combine multiple time series + for different views of the data. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + filter: + description: Required. The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + pickTimeSeriesFilter: + description: Ranking based time series + filter. + properties: + direction: + description: How to use the ranking + to select time series that pass + through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to other + time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after `aggregation` is applied. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + required: + - filter + type: object + timeSeriesFilterRatio: + description: Parameters to fetch a ratio + between two time series filters. + properties: + denominator: + description: The denominator of the + ratio. + properties: + aggregation: + description: By default, the raw + time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in all + the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done + before the per-series aligner + can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, where + the value of each data point + in the resulting series + is a function of all the + already aligned values in + the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring the + data points in a single + time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all + the data points in an `alignment_period` + to be mathematically grouped + together, resulting in a + single data point for each + `alignment_period` with + end timestamp at the end + of the period. + type: string + type: object + filter: + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + required: + - filter + type: object + numerator: + description: The numerator of the + ratio. + properties: + aggregation: + description: By default, the raw + time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in all + the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done + before the per-series aligner + can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, where + the value of each data point + in the resulting series + is a function of all the + already aligned values in + the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring the + data points in a single + time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all + the data points in an `alignment_period` + to be mathematically grouped + together, resulting in a + single data point for each + `alignment_period` with + end timestamp at the end + of the period. + type: string + type: object + filter: + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + required: + - filter + type: object + pickTimeSeriesFilter: + description: Ranking based time series + filter. + properties: + direction: + description: How to use the ranking + to select time series that pass + through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to other + time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after the ratio is computed. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + type: object + timeSeriesQueryLanguage: + description: A query used to fetch time + series with MQL. + type: string + unitOverride: + description: The unit of data contained + in fetched time series. If non-empty, + this unit will override any unit that + accompanies fetched data. The format + is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + field in `MetricDescriptor`. + type: string + type: object + required: + - timeSeriesQuery + type: object + type: array + showLabels: + description: Optional. Indicates whether or not + the pie chart should show slices' labels + type: boolean + required: + - chartType + - dataSets + type: object scorecard: description: A scorecard summarizing time series data. properties: + blankView: + description: Will cause the `Scorecard` to show + only the value, with no indicator to its value + relative to its thresholds. + type: object gaugeView: description: Will cause the scorecard to show a gauge chart. @@ -92525,11 +94872,7 @@ spec: description: The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a time - series query. For example, if the data is - published once every 10 minutes it would not - make sense to fetch and align data at one - minute intervals. This field is optional and - exists only as a hint. + series query. type: string sparkChartType: description: Required. The type of sparkchart @@ -92539,48 +94882,9 @@ spec: - sparkChartType type: object thresholds: - description: |- - The thresholds used to determine the state of the scorecard given the - time series' current value. For an actual value x, the scorecard is in a - danger state if x is less than or equal to a danger threshold that triggers - below, or greater than or equal to a danger threshold that triggers above. - Similarly, if x is above/below a warning threshold that triggers - above/below, then the scorecard is in a warning state - unless x also puts - it in a danger state. (Danger trumps warning.) - - - As an example, consider a scorecard with the following four thresholds: - - - ``` - { - value: 90, - category: 'DANGER', - trigger: 'ABOVE', - }, - { - value: 70, - category: 'WARNING', - trigger: 'ABOVE', - }, - { - value: 10, - category: 'DANGER', - trigger: 'BELOW', - }, - { - value: 20, - category: 'WARNING', - trigger: 'BELOW', - } - ``` - - - Then: values less than or equal to 10 would put the scorecard in a DANGER - state, values greater than 10 but less than or equal to 20 a WARNING state, - values strictly between 20 and 70 an OK state, values greater than or equal - to 70 but less than 90 a WARNING state, and values greater than or equal to - 90 a DANGER state. + description: The thresholds used to determine the + state of the scorecard given the time series' + current value. items: properties: color: @@ -92595,6 +94899,11 @@ spec: label: description: A label for the threshold. type: string + targetAxis: + description: The target axis to use for plotting + the threshold. Target axis is not allowed + in a Scorecard. + type: string value: description: The value of the threshold. The value should be defined in the native scale @@ -92607,6 +94916,16 @@ spec: description: Required. Fields for querying time series data from the Stackdriver metrics API. properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as the + alignment period so that there will be only + 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time series + with PromQL. + type: string timeSeriesFilter: description: Filter parameters to fetch time series. @@ -92618,87 +94937,38 @@ spec: of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. This + will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where the + value of each data point in the resulting + series is a function of all the already + aligned values in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` is specified. - The `group_by_fields` determine how - the time series are partitioned into - subsets prior to applying the aggregation - operation. Each subset contains time - series that have the same value for - each of the grouping fields. Each - individual time series is a member - of exactly one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, so - this field implicitly contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the time - series have the same resource type, - then the time series are aggregated - into a single output time series. - If `cross_series_reducer` is not defined, - this field is ignored. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in a + single time series into temporal alignment. + Except for `ALIGN_NONE`, all alignments + cause all the data points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point for + each `alignment_period` with end timestamp + at the end of the period. type: string type: object filter: @@ -92732,87 +95002,38 @@ spec: after `aggregation` is applied. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. This + will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where the + value of each data point in the resulting + series is a function of all the already + aligned values in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` is specified. - The `group_by_fields` determine how - the time series are partitioned into - subsets prior to applying the aggregation - operation. Each subset contains time - series that have the same value for - each of the grouping fields. Each - individual time series is a member - of exactly one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, so - this field implicitly contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the time - series have the same resource type, - then the time series are aggregated - into a single output time series. - If `cross_series_reducer` is not defined, - this field is ignored. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in a + single time series into temporal alignment. + Except for `ALIGN_NONE`, all alignments + cause all the data points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point for + each `alignment_period` with end timestamp + at the end of the period. type: string type: object required: @@ -92827,100 +95048,50 @@ spec: properties: aggregation: description: By default, the raw time - series data is returned. Use this - field to combine multiple time series - for different views of the data. + series data is returned. properties: - alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the + data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets prior - to applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to - reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the time - series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -92932,100 +95103,50 @@ spec: properties: aggregation: description: By default, the raw time - series data is returned. Use this - field to combine multiple time series - for different views of the data. + series data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the + data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets prior - to applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to - reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the time - series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -93058,87 +95179,38 @@ spec: after the ratio is computed. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. This + will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where the + value of each data point in the resulting + series is a function of all the already + aligned values in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` is specified. - The `group_by_fields` determine how - the time series are partitioned into - subsets prior to applying the aggregation - operation. Each subset contains time - series that have the same value for - each of the grouping fields. Each - individual time series is a member - of exactly one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, so - this field implicitly contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the time - series have the same resource type, - then the time series are aggregated - into a single output time series. - If `cross_series_reducer` is not defined, - this field is ignored. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in a + single time series into temporal alignment. + Except for `ALIGN_NONE`, all alignments + cause all the data points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point for + each `alignment_period` with end timestamp + at the end of the period. type: string type: object type: object @@ -93157,6 +95229,22 @@ spec: required: - timeSeriesQuery type: object + sectionHeader: + description: A widget that defines a section header + for easier navigation of the dashboard. + properties: + dividerBelow: + description: Whether to insert a divider below the + section in the table of contents + type: boolean + subtitle: + description: The subtitle of the section + type: string + type: object + singleViewGroup: + description: A widget that groups the other widgets + by using a dropdown menu. + type: object text: description: A raw string or markdown displaying textual content. @@ -93167,6 +95255,449 @@ spec: format: description: How the text content is formatted. type: string + style: + description: How the text is styled + properties: + backgroundColor: + description: The background color as a hex string. + "#RRGGBB" or "#RGB" + type: string + fontSize: + description: Font sizes for both the title and + content. The title will still be larger relative + to the content. + type: string + horizontalAlignment: + description: The horizontal alignment of both + the title and content + type: string + padding: + description: The amount of padding around the + widget + type: string + pointerLocation: + description: The pointer location for this widget + (also sometimes called a "tail") + type: string + textColor: + description: The text color as a hex string. + "#RRGGBB" or "#RGB" + type: string + verticalAlignment: + description: The vertical alignment of both + the title and content + type: string + type: object + type: object + timeSeriesTable: + description: A widget that displays time series data + in a tabular format. + properties: + columnSettings: + description: Optional. The list of the persistent + column settings for the table. + items: + properties: + column: + description: Required. The id of the column. + type: string + visible: + description: Required. Whether the column + should be visible on page load. + type: boolean + required: + - column + - visible + type: object + type: array + dataSets: + description: Required. The data displayed in this + table. + items: + properties: + minAlignmentPeriod: + description: Optional. The lower bound on + data point frequency for this data set. + type: string + tableDisplayOptions: + description: Optional. Table display options + for configuring how the table is rendered. + properties: + shownColumns: + description: Optional. This field is unused + and has been replaced by TimeSeriesTable.column_settings + items: + type: string + type: array + type: object + tableTemplate: + description: Optional. A template string for + naming `TimeSeries` in the resulting data + set. + type: string + timeSeriesQuery: + description: Required. Fields for querying + time series data from the Stackdriver metrics + API. + properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as + the alignment period so that there will + be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string + timeSeriesFilter: + description: Filter parameters to fetch + time series. + properties: + aggregation: + description: By default, the raw time + series data is returned. Use this + field to combine multiple time series + for different views of the data. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + filter: + description: Required. The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + pickTimeSeriesFilter: + description: Ranking based time series + filter. + properties: + direction: + description: How to use the ranking + to select time series that pass + through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to other + time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after `aggregation` is applied. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + required: + - filter + type: object + timeSeriesFilterRatio: + description: Parameters to fetch a ratio + between two time series filters. + properties: + denominator: + description: The denominator of the + ratio. + properties: + aggregation: + description: By default, the raw + time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in all + the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done + before the per-series aligner + can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, where + the value of each data point + in the resulting series + is a function of all the + already aligned values in + the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring the + data points in a single + time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all + the data points in an `alignment_period` + to be mathematically grouped + together, resulting in a + single data point for each + `alignment_period` with + end timestamp at the end + of the period. + type: string + type: object + filter: + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + required: + - filter + type: object + numerator: + description: The numerator of the + ratio. + properties: + aggregation: + description: By default, the raw + time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in all + the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done + before the per-series aligner + can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, where + the value of each data point + in the resulting series + is a function of all the + already aligned values in + the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring the + data points in a single + time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all + the data points in an `alignment_period` + to be mathematically grouped + together, resulting in a + single data point for each + `alignment_period` with + end timestamp at the end + of the period. + type: string + type: object + filter: + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + required: + - filter + type: object + pickTimeSeriesFilter: + description: Ranking based time series + filter. + properties: + direction: + description: How to use the ranking + to select time series that pass + through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to other + time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after the ratio is computed. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + type: object + timeSeriesQueryLanguage: + description: A query used to fetch time + series with MQL. + type: string + unitOverride: + description: The unit of data contained + in fetched time series. If non-empty, + this unit will override any unit that + accompanies fetched data. The format + is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + field in `MetricDescriptor`. + type: string + type: object + type: object + type: array + metricVisualization: + description: Optional. Store rendering strategy + type: string + required: + - dataSets type: object title: description: Optional. The title of the widget. @@ -93189,30 +95720,33 @@ spec: legendTemplate: description: A template string for naming `TimeSeries` in the resulting data set. - This should be a string with interpolations - of the form `${label_name}`, which will - resolve to the label's value. type: string minAlignmentPeriod: description: Optional. The lower bound on - data point frequency for this data set, - implemented by specifying the minimum alignment - period to use in a time series query For - example, if the data is published once every - 10 minutes, the `min_alignment_period` should - be at least 10 minutes. It would not make - sense to fetch and align data at one minute - intervals. + data point frequency for this data set. type: string plotType: description: How this data should be plotted on the chart. type: string + targetAxis: + description: Optional. The target axis to + use for plotting the metric. + type: string timeSeriesQuery: - description: Required. Fields for querying - time series data from the Stackdriver metrics - API. + description: Fields for querying time series + data from the Stackdriver metrics API. properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as + the alignment period so that there will + be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string timeSeriesFilter: description: Filter parameters to fetch time series. @@ -93224,91 +95758,45 @@ spec: for different views of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object filter: @@ -93346,91 +95834,45 @@ spec: after `aggregation` is applied. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object required: @@ -93447,104 +95889,54 @@ spec: aggregation: description: By default, the raw time series data is returned. - Use this field to combine multiple - time series for different views - of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in all + the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done + before the per-series aligner + can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction + operation to be used to + combine time series into + a single time series, where + the value of each data point + in the resulting series + is a function of all the + already aligned values in + the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the - same value for each of the - grouping fields. Each individual - time series is a member - of exactly one subset. The - `cross_series_reducer` is - applied to each subset of - time series. It is not possible - to reduce across different - resource types, so this - field implicitly contains - `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If - `group_by_fields` is not - specified and all the time - series have the same resource - type, then the time series - are aggregated into a single - output time series. If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` + describes how to bring the + data points in a single + time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all + the data points in an `alignment_period` + to be mathematically grouped + together, resulting in a + single data point for each + `alignment_period` with + end timestamp at the end + of the period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -93558,104 +95950,54 @@ spec: aggregation: description: By default, the raw time series data is returned. - Use this field to combine multiple - time series for different views - of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in all + the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done + before the per-series aligner + can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction + operation to be used to + combine time series into + a single time series, where + the value of each data point + in the resulting series + is a function of all the + already aligned values in + the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the - same value for each of the - grouping fields. Each individual - time series is a member - of exactly one subset. The - `cross_series_reducer` is - applied to each subset of - time series. It is not possible - to reduce across different - resource types, so this - field implicitly contains - `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If - `group_by_fields` is not - specified and all the time - series have the same resource - type, then the time series - are aggregated into a single - output time series. If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` + describes how to bring the + data points in a single + time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all + the data points in an `alignment_period` + to be mathematically grouped + together, resulting in a + single data point for each + `alignment_period` with + end timestamp at the end + of the period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -93691,91 +96033,45 @@ spec: after the ratio is computed. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object type: object @@ -93813,6 +96109,11 @@ spec: label: description: A label for the threshold. type: string + targetAxis: + description: The target axis to use for plotting + the threshold. Target axis is not allowed + in a Scorecard. + type: string value: description: The value of the threshold. The value should be defined in the native scale @@ -93823,11 +96124,7 @@ spec: type: array timeshiftDuration: description: The duration used to display a comparison - chart. A comparison chart simultaneously shows - values from two similar-length time periods (e.g., - week-over-week metrics). The duration must be - positive, and it can only be applied to charts - with data sets of LINE plot type. + chart. type: string xAxis: description: The properties applied to the x-axis. @@ -93840,6 +96137,17 @@ spec: scale is used. type: string type: object + y2Axis: + description: The properties applied to the y2-axis. + properties: + label: + description: The label of the axis. + type: string + scale: + description: The axis scale. By default, a linear + scale is used. + type: string + type: object yAxis: description: The properties applied to the y-axis. properties: @@ -93910,8 +96218,7 @@ spec: type: object resourceID: description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. + creation and acquisition. type: string rowLayout: description: The content is divided into equally spaced rows and the @@ -93924,9 +96231,7 @@ spec: weight: description: The relative weight of this row. The row weight is used to adjust the height of rows on the screen (relative - to peers). Greater the weight, greater the height of the - row on the screen. If omitted, a value of 1 is used while - rendering. + to peers). format: int64 type: integer widgets: @@ -93934,23 +96239,195 @@ spec: this row. items: properties: + alertChart: + description: A chart of alert policy data. + properties: + alertPolicyRef: + description: Required. A reference to the MonitoringAlertPolicy. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The MonitoringAlertPolicy link + in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", + when not managed by KCC. + type: string + name: + description: The `name` field of a `MonitoringAlertPolicy` + resource. + type: string + namespace: + description: The `namespace` field of a `MonitoringAlertPolicy` + resource. + type: string + type: object + required: + - alertPolicyRef + type: object blank: description: A blank space. type: object + collapsibleGroup: + description: A widget that groups the other widgets. + All widgets that are within the area spanned by + the grouping widget are considered member widgets. + properties: + collapsed: + description: The collapsed state of the widget + on first page load. + type: boolean + type: object + errorReportingPanel: + description: A widget that displays a list of error + groups. + properties: + projectRefs: + description: The projects from which to gather + errors. + items: + description: The Project that this resource + belongs to. + oneOf: + - not: + required: + - external + required: + - name + - kind + - not: + anyOf: + - required: + - name + - required: + - namespace + - required: + - kind + required: + - external + properties: + external: + description: The `projectID` field of a + project, when not managed by KCC. + type: string + kind: + description: The kind of the Project resource; + optional but must be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` + resource. + type: string + namespace: + description: The `namespace` field of a + `Project` resource. + type: string + type: object + type: array + services: + description: An identifier of the service, such + as the name of the executable, job, or Google + App Engine service name. This field is expected + to have a low number of values that are relatively + stable over time, as opposed to `version`, which + can be changed whenever new code is deployed. + items: + type: string + type: array + versions: + description: Represents the source code version + that the developer provided, which could represent + a version label or a Git SHA-1 hash, for example. + For App Engine standard environment, the version + is set to the version of the app. + items: + type: string + type: array + type: object + id: + description: Optional. The widget id. Ids may be made + up of alphanumerics, dashes and underscores. Widget + ids are optional. + type: string + incidentList: + description: A widget that shows list of incidents. + properties: + monitoredResources: + description: Optional. The monitored resource + for which incidents are listed. + items: + properties: + labels: + additionalProperties: + type: string + description: Required. Values for all of + the labels listed in the associated monitored + resource descriptor. + type: object + type: + description: Required. The monitored resource + type. This field must match the `type` + field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] + object. + type: string + type: object + type: array + policyRefs: + description: Optional. A list of alert policies + to filter the incident list by. + items: + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The MonitoringAlertPolicy link + in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", + when not managed by KCC. + type: string + name: + description: The `name` field of a `MonitoringAlertPolicy` + resource. + type: string + namespace: + description: The `namespace` field of a + `MonitoringAlertPolicy` resource. + type: string + type: object + type: array + type: object logsPanel: description: A widget that shows a stream of logs. properties: filter: description: A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). - Only log entries that match the filter are returned. An - empty filter matches all log entries. type: string resourceNames: description: The names of logging resources to - collect logs for. Currently only projects are - supported. If empty, the widget will default - to the host project. + collect logs for. items: oneOf: - not: @@ -93988,9 +96465,418 @@ spec: type: object type: array type: object + pieChart: + description: A widget that displays timeseries data + as a pie chart. + properties: + chartType: + description: Required. Indicates the visualization + type for the PieChart. + type: string + dataSets: + description: Required. The queries for the chart's + data. + items: + properties: + minAlignmentPeriod: + description: Optional. The lower bound on + data point frequency for this data set. + type: string + sliceNameTemplate: + description: Optional. A template for the + name of the slice. + type: string + timeSeriesQuery: + description: Required. The query for the + PieChart. See, `google.monitoring.dashboard.v1.TimeSeriesQuery`. + properties: + outputFullDuration: + description: Optional. If set, Cloud + Monitoring will treat the full query + duration as the alignment period so + that there will be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string + timeSeriesFilter: + description: Filter parameters to fetch + time series. + properties: + aggregation: + description: By default, the raw + time series data is returned. + Use this field to combine multiple + time series for different views + of the data. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + filter: + description: Required. The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + pickTimeSeriesFilter: + description: Ranking based time + series filter. + properties: + direction: + description: How to use the + ranking to select time series + that pass through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to + other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after `aggregation` is applied. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + required: + - filter + type: object + timeSeriesFilterRatio: + description: Parameters to fetch a ratio + between two time series filters. + properties: + denominator: + description: The denominator of + the ratio. + properties: + aggregation: + description: By default, the + raw time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. + type: string + groupByFields: + description: The set of + fields to preserve when + `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. + type: string + type: object + filter: + description: The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric + types, resources, and projects + to query. + type: string + required: + - filter + type: object + numerator: + description: The numerator of the + ratio. + properties: + aggregation: + description: By default, the + raw time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. + type: string + groupByFields: + description: The set of + fields to preserve when + `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. + type: string + type: object + filter: + description: The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric + types, resources, and projects + to query. + type: string + required: + - filter + type: object + pickTimeSeriesFilter: + description: Ranking based time + series filter. + properties: + direction: + description: How to use the + ranking to select time series + that pass through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to + other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after the ratio is computed. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + type: object + timeSeriesQueryLanguage: + description: A query used to fetch time + series with MQL. + type: string + unitOverride: + description: The unit of data contained + in fetched time series. If non-empty, + this unit will override any unit that + accompanies fetched data. The format + is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + field in `MetricDescriptor`. + type: string + type: object + required: + - timeSeriesQuery + type: object + type: array + showLabels: + description: Optional. Indicates whether or not + the pie chart should show slices' labels + type: boolean + required: + - chartType + - dataSets + type: object scorecard: description: A scorecard summarizing time series data. properties: + blankView: + description: Will cause the `Scorecard` to show + only the value, with no indicator to its value + relative to its thresholds. + type: object gaugeView: description: Will cause the scorecard to show a gauge chart. @@ -94016,11 +96902,7 @@ spec: description: The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a - time series query. For example, if the data - is published once every 10 minutes it would - not make sense to fetch and align data at - one minute intervals. This field is optional - and exists only as a hint. + time series query. type: string sparkChartType: description: Required. The type of sparkchart @@ -94030,48 +96912,9 @@ spec: - sparkChartType type: object thresholds: - description: |- - The thresholds used to determine the state of the scorecard given the - time series' current value. For an actual value x, the scorecard is in a - danger state if x is less than or equal to a danger threshold that triggers - below, or greater than or equal to a danger threshold that triggers above. - Similarly, if x is above/below a warning threshold that triggers - above/below, then the scorecard is in a warning state - unless x also puts - it in a danger state. (Danger trumps warning.) - - - As an example, consider a scorecard with the following four thresholds: - - - ``` - { - value: 90, - category: 'DANGER', - trigger: 'ABOVE', - }, - { - value: 70, - category: 'WARNING', - trigger: 'ABOVE', - }, - { - value: 10, - category: 'DANGER', - trigger: 'BELOW', - }, - { - value: 20, - category: 'WARNING', - trigger: 'BELOW', - } - ``` - - - Then: values less than or equal to 10 would put the scorecard in a DANGER - state, values greater than 10 but less than or equal to 20 a WARNING state, - values strictly between 20 and 70 an OK state, values greater than or equal - to 70 but less than 90 a WARNING state, and values greater than or equal to - 90 a DANGER state. + description: The thresholds used to determine + the state of the scorecard given the time series' + current value. items: properties: color: @@ -94086,6 +96929,11 @@ spec: label: description: A label for the threshold. type: string + targetAxis: + description: The target axis to use for + plotting the threshold. Target axis is + not allowed in a Scorecard. + type: string value: description: The value of the threshold. The value should be defined in the native @@ -94098,6 +96946,16 @@ spec: description: Required. Fields for querying time series data from the Stackdriver metrics API. properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as the + alignment period so that there will be only + 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time series + with PromQL. + type: string timeSeriesFilter: description: Filter parameters to fetch time series. @@ -94109,89 +96967,42 @@ spec: different views of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object filter: @@ -94227,89 +97038,42 @@ spec: after `aggregation` is applied. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object required: @@ -94324,101 +97088,52 @@ spec: properties: aggregation: description: By default, the raw time - series data is returned. Use this - field to combine multiple time series - for different views of the data. + series data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -94430,101 +97145,52 @@ spec: properties: aggregation: description: By default, the raw time - series data is returned. Use this - field to combine multiple time series - for different views of the data. + series data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -94558,89 +97224,42 @@ spec: after the ratio is computed. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object type: object @@ -94660,6 +97279,22 @@ spec: required: - timeSeriesQuery type: object + sectionHeader: + description: A widget that defines a section header + for easier navigation of the dashboard. + properties: + dividerBelow: + description: Whether to insert a divider below + the section in the table of contents + type: boolean + subtitle: + description: The subtitle of the section + type: string + type: object + singleViewGroup: + description: A widget that groups the other widgets + by using a dropdown menu. + type: object text: description: A raw string or markdown displaying textual content. @@ -94670,6 +97305,465 @@ spec: format: description: How the text content is formatted. type: string + style: + description: How the text is styled + properties: + backgroundColor: + description: The background color as a hex + string. "#RRGGBB" or "#RGB" + type: string + fontSize: + description: Font sizes for both the title + and content. The title will still be larger + relative to the content. + type: string + horizontalAlignment: + description: The horizontal alignment of both + the title and content + type: string + padding: + description: The amount of padding around + the widget + type: string + pointerLocation: + description: The pointer location for this + widget (also sometimes called a "tail") + type: string + textColor: + description: The text color as a hex string. + "#RRGGBB" or "#RGB" + type: string + verticalAlignment: + description: The vertical alignment of both + the title and content + type: string + type: object + type: object + timeSeriesTable: + description: A widget that displays time series data + in a tabular format. + properties: + columnSettings: + description: Optional. The list of the persistent + column settings for the table. + items: + properties: + column: + description: Required. The id of the column. + type: string + visible: + description: Required. Whether the column + should be visible on page load. + type: boolean + required: + - column + - visible + type: object + type: array + dataSets: + description: Required. The data displayed in this + table. + items: + properties: + minAlignmentPeriod: + description: Optional. The lower bound on + data point frequency for this data set. + type: string + tableDisplayOptions: + description: Optional. Table display options + for configuring how the table is rendered. + properties: + shownColumns: + description: Optional. This field is + unused and has been replaced by TimeSeriesTable.column_settings + items: + type: string + type: array + type: object + tableTemplate: + description: Optional. A template string + for naming `TimeSeries` in the resulting + data set. + type: string + timeSeriesQuery: + description: Required. Fields for querying + time series data from the Stackdriver + metrics API. + properties: + outputFullDuration: + description: Optional. If set, Cloud + Monitoring will treat the full query + duration as the alignment period so + that there will be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string + timeSeriesFilter: + description: Filter parameters to fetch + time series. + properties: + aggregation: + description: By default, the raw + time series data is returned. + Use this field to combine multiple + time series for different views + of the data. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + filter: + description: Required. The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + pickTimeSeriesFilter: + description: Ranking based time + series filter. + properties: + direction: + description: How to use the + ranking to select time series + that pass through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to + other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after `aggregation` is applied. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + required: + - filter + type: object + timeSeriesFilterRatio: + description: Parameters to fetch a ratio + between two time series filters. + properties: + denominator: + description: The denominator of + the ratio. + properties: + aggregation: + description: By default, the + raw time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. + type: string + groupByFields: + description: The set of + fields to preserve when + `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. + type: string + type: object + filter: + description: The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric + types, resources, and projects + to query. + type: string + required: + - filter + type: object + numerator: + description: The numerator of the + ratio. + properties: + aggregation: + description: By default, the + raw time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. + type: string + groupByFields: + description: The set of + fields to preserve when + `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. + type: string + type: object + filter: + description: The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric + types, resources, and projects + to query. + type: string + required: + - filter + type: object + pickTimeSeriesFilter: + description: Ranking based time + series filter. + properties: + direction: + description: How to use the + ranking to select time series + that pass through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to + other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after the ratio is computed. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + type: object + timeSeriesQueryLanguage: + description: A query used to fetch time + series with MQL. + type: string + unitOverride: + description: The unit of data contained + in fetched time series. If non-empty, + this unit will override any unit that + accompanies fetched data. The format + is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + field in `MetricDescriptor`. + type: string + type: object + type: object + type: array + metricVisualization: + description: Optional. Store rendering strategy + type: string + required: + - dataSets type: object title: description: Optional. The title of the widget. @@ -94692,30 +97786,33 @@ spec: legendTemplate: description: A template string for naming `TimeSeries` in the resulting data set. - This should be a string with interpolations - of the form `${label_name}`, which will - resolve to the label's value. type: string minAlignmentPeriod: description: Optional. The lower bound on - data point frequency for this data set, - implemented by specifying the minimum - alignment period to use in a time series - query For example, if the data is published - once every 10 minutes, the `min_alignment_period` - should be at least 10 minutes. It would - not make sense to fetch and align data - at one minute intervals. + data point frequency for this data set. type: string plotType: description: How this data should be plotted on the chart. type: string + targetAxis: + description: Optional. The target axis to + use for plotting the metric. + type: string timeSeriesQuery: - description: Required. Fields for querying - time series data from the Stackdriver - metrics API. + description: Fields for querying time series + data from the Stackdriver metrics API. properties: + outputFullDuration: + description: Optional. If set, Cloud + Monitoring will treat the full query + duration as the alignment period so + that there will be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string timeSeriesFilter: description: Filter parameters to fetch time series. @@ -94728,93 +97825,46 @@ spec: of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the - same value for each of the - grouping fields. Each individual - time series is a member of - exactly one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is not - possible to reduce across - different resource types, - so this field implicitly contains - `resource.type`. Fields not - specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same - resource type, then the time - series are aggregated into - a single output time series. - If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. type: string type: object filter: @@ -94852,93 +97902,46 @@ spec: after `aggregation` is applied. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the - same value for each of the - grouping fields. Each individual - time series is a member of - exactly one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is not - possible to reduce across - different resource types, - so this field implicitly contains - `resource.type`. Fields not - specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same - resource type, then the time - series are aggregated into - a single output time series. - If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. type: string type: object required: @@ -94955,106 +97958,58 @@ spec: aggregation: description: By default, the raw time series data is returned. - Use this field to combine - multiple time series for different - views of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time - series are partitioned - into subsets prior to - applying the aggregation - operation. Each subset - contains time series that - have the same value for - each of the grouping fields. - Each individual time series - is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is - not possible to reduce - across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If - `group_by_fields` is not - specified and all the - time series have the same - resource type, then the - time series are aggregated - into a single output time - series. If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. type: string type: object filter: - description: Required. The [monitoring + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects @@ -95070,106 +98025,58 @@ spec: aggregation: description: By default, the raw time series data is returned. - Use this field to combine - multiple time series for different - views of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time - series are partitioned - into subsets prior to - applying the aggregation - operation. Each subset - contains time series that - have the same value for - each of the grouping fields. - Each individual time series - is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is - not possible to reduce - across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If - `group_by_fields` is not - specified and all the - time series have the same - resource type, then the - time series are aggregated - into a single output time - series. If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. type: string type: object filter: - description: Required. The [monitoring + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects @@ -95207,93 +98114,46 @@ spec: after the ratio is computed. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the - same value for each of the - grouping fields. Each individual - time series is a member of - exactly one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is not - possible to reduce across - different resource types, - so this field implicitly contains - `resource.type`. Fields not - specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same - resource type, then the time - series are aggregated into - a single output time series. - If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. type: string type: object type: object @@ -95331,6 +98191,11 @@ spec: label: description: A label for the threshold. type: string + targetAxis: + description: The target axis to use for + plotting the threshold. Target axis is + not allowed in a Scorecard. + type: string value: description: The value of the threshold. The value should be defined in the native @@ -95341,11 +98206,7 @@ spec: type: array timeshiftDuration: description: The duration used to display a comparison - chart. A comparison chart simultaneously shows - values from two similar-length time periods - (e.g., week-over-week metrics). The duration - must be positive, and it can only be applied - to charts with data sets of LINE plot type. + chart. type: string xAxis: description: The properties applied to the x-axis. @@ -95358,6 +98219,17 @@ spec: linear scale is used. type: string type: object + y2Axis: + description: The properties applied to the y2-axis. + properties: + label: + description: The label of the axis. + type: string + scale: + description: The axis scale. By default, a + linear scale is used. + type: string + type: object yAxis: description: The properties applied to the y-axis. properties: @@ -95412,11 +98284,7 @@ spec: etag: description: \`etag\` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting - each other. An \`etag\` is returned in the response to \`GetDashboard\`, - and users are expected to put that etag in the request to \`UpdateDashboard\` - to ensure that their change will be applied to the same version - of the Dashboard configuration. The field should not be passed during - dashboard creation. + each other. type: string observedGeneration: description: ObservedGeneration is the generation of the resource @@ -95439,7 +98307,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -95630,7 +98498,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -95925,7 +98793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -96052,7 +98920,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -96353,7 +99221,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -96924,7 +99792,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -97083,7 +99951,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -97462,7 +100330,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -97587,9 +100455,276 @@ spec: type: string type: object type: array - createTime: - description: Output only. The time the hub was created. - format: date-time + createTime: + description: Output only. The time the hub was created. + format: date-time + type: string + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + routingVpcs: + description: The VPC network associated with this hub's spokes. All + of the VPN tunnels, VLAN attachments, and router appliance instances + referenced by this hub's spokes must belong to this VPC network. + This field is read-only. Network Connectivity Center automatically + populates it based on the set of spokes attached to the hub. + items: + properties: + uri: + description: The URI of the VPC network. + type: string + type: object + type: array + state: + description: 'Output only. The current lifecycle state of this hub. + Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING' + type: string + uniqueId: + description: Output only. The Google-generated UUID for the hub. This + value is unique across all hub resources. If a hub is deleted and + another with the same name is created, the new hub is assigned a + different unique_id. + type: string + updateTime: + description: Output only. The time the hub was last updated. + format: date-time + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/system: "true" + name: networkconnectivityserviceconnectionpolicies.networkconnectivity.cnrm.cloud.google.com +spec: + group: networkconnectivity.cnrm.cloud.google.com + names: + kind: NetworkConnectivityServiceConnectionPolicy + listKind: NetworkConnectivityServiceConnectionPolicyList + plural: networkconnectivityserviceconnectionpolicies + singular: networkconnectivityserviceconnectionpolicy + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: NetworkConnectivityServiceConnectionPolicy is the Schema for + the NetworkConnectivityServiceConnectionPolicy API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: NetworkConnectivityServiceConnectionPolicySpec defines the + desired state of NetworkConnectivityServiceConnectionPolicy + properties: + description: + description: A description of this resource. + type: string + location: + description: Immutable. Location of the resource. + type: string + networkRef: + description: 'The resource path of the consumer network. Example: + - projects/{projectNumOrId}/global/networks/{resourceId}.' + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. + type: string + name: + description: The `name` field of a `ComputeNetwork` resource. + type: string + namespace: + description: The `namespace` field of a `ComputeNetwork` resource. + type: string + type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object + pscConfig: + description: Configuration used for Private Service Connect connections. + Used when Infrastructure is PSC. + properties: + limit: + description: Optional. Max number of PSC connections for this + policy. + format: int64 + type: integer + producerInstanceLocation: + description: Required. ProducerInstanceLocation is used to specify + which authorization mechanism to use to determine which projects + the Producer instance can be within. + type: string + subnetworkRefs: + description: 'The resource paths of subnetworks to use for IP + address management. Example: projects/{projectNumOrId}/regions/{region}/subnetworks/{resourceId}.' + items: + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. + type: string + name: + description: The `name` field of a `ComputeSubnetwork` resource. + type: string + namespace: + description: The `namespace` field of a `ComputeSubnetwork` + resource. + type: string + type: object + type: array + type: object + resourceID: + description: The NetworkConnectivityServiceConnectionPolicy name. + If not given, the metadata.name will be used. + type: string + serviceClass: + description: The service class identifier for which this ServiceConnectionPolicy + is for. The service class identifier is a unique, symbolic representation + of a ServiceClass. It is provided by the Service Producer. Google + services have a prefix of gcp. For example, gcp-cloud-sql. 3rd party + services do not. For example, test-service-a3dfcx. + type: string + required: + - location + - projectRef + type: object + status: + description: NetworkConnectivityServiceConnectionPolicyStatus defines + the config connector machine state of NetworkConnectivityServiceConnectionPolicy + properties: + conditions: + description: Conditions represent the latest available observations + of the object's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + externalRef: + description: A unique specifier for the NetworkConnectivityServiceConnectionPolicy + resource in GCP. type: string observedGeneration: description: ObservedGeneration is the generation of the resource @@ -97597,54 +100732,134 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer - routingVpcs: - description: The VPC network associated with this hub's spokes. All - of the VPN tunnels, VLAN attachments, and router appliance instances - referenced by this hub's spokes must belong to this VPC network. - This field is read-only. Network Connectivity Center automatically - populates it based on the set of spokes attached to the hub. - items: - properties: - uri: - description: The URI of the VPC network. - type: string - type: object - type: array - state: - description: 'Output only. The current lifecycle state of this hub. - Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING' - type: string - uniqueId: - description: Output only. The Google-generated UUID for the hub. This - value is unique across all hub resources. If a hub is deleted and - another with the same name is created, the new hub is assigned a - different unique_id. - type: string - updateTime: - description: Output only. The time the hub was last updated. - format: date-time - type: string + observedState: + description: ObservedState is the state of the resource as most recently + observed in GCP. + properties: + createTime: + description: Output only. Time when the ServiceConnectionMap was + created. + type: string + etag: + description: Optional. The etag is computed by the server, and + may be sent on update and delete requests to ensure the client + has an up-to-date value before proceeding. + type: string + infrastructure: + description: Output only. The type of underlying resources used + to create the connection. + type: string + pscConnections: + description: Output only. [Output only] Information about each + Private Service Connect connection. + items: + properties: + consumerAddress: + description: The resource reference of the consumer address. + type: string + consumerForwardingRule: + description: The resource reference of the PSC Forwarding + Rule within the consumer VPC. + type: string + consumerTargetProject: + description: The project where the PSC connection is created. + type: string + error: + description: The most recent error during operating this + connection. + properties: + code: + description: The status code, which should be an enum + value of google.rpc.Code. + format: int32 + type: integer + message: + description: A developer-facing error message, which + should be in English. Any user-facing error message + should be localized and sent in the google.rpc.Status.details + field, or localized by the client. + type: string + type: object + errorInfo: + description: Output only. The error info for the latest + error during operating this connection. + properties: + domain: + description: 'The logical grouping to which the "reason" + belongs. The error domain is typically the registered + service name of the tool or product that generates + the error. Example: "pubsub.googleapis.com". If the + error is generated by some common infrastructure, + the error domain must be a globally unique value that + identifies the infrastructure. For Google API infrastructure, + the error domain is "googleapis.com".' + type: string + metadata: + additionalProperties: + type: string + description: 'Additional structured details about this + error. Keys must match /a-z+/ but should ideally be + lowerCamelCase. Also they must be limited to 64 characters + in length. When identifying the current value of an + exceeded limit, the units should be contained in the + key, not the value. For example, rather than {"instanceLimit": + "100/request"}, should be returned as, {"instanceLimitPerRequest": + "100"}, if the client exceeds the number of instances + that can be created in a single (batch) request.' + type: object + reason: + description: The reason of the error. This is a constant + value that identifies the proximate cause of the error. + Error reasons are unique within a particular domain + of errors. This should be at most 63 characters and + match a regular expression of `A-Z+[A-Z0-9]`, which + represents UPPER_SNAKE_CASE. + type: string + type: object + errorType: + description: The error type indicates whether the error + is consumer facing, producer facing or system internal. + type: string + gceOperation: + description: The last Compute Engine operation to setup + PSC connection. + type: string + producerInstanceID: + description: Immutable. An immutable identifier for the + producer instance. + type: string + pscConnectionID: + description: The PSC connection id of the PSC forwarding + rule. + type: string + selectedSubnetwork: + description: Output only. The URI of the subnetwork selected + to allocate IP address for this connection. + type: string + state: + description: State of the PSC Connection + type: string + type: object + type: array + updateTime: + description: Output only. Time when the ServiceConnectionMap was + updated. + type: string + type: object type: object - required: - - spec type: object served: true storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98031,7 +101246,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -98306,7 +101521,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98564,7 +101779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98793,7 +102008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -99037,7 +102252,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -99274,7 +102489,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -99621,7 +102836,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -100528,7 +103743,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -100849,7 +104064,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101075,7 +104290,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101542,7 +104757,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -102276,7 +105491,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -102452,7 +105667,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -102782,7 +105997,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -103103,7 +106318,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -103323,7 +106538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -103484,7 +106699,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -104253,7 +107468,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105255,7 +108470,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -105946,7 +109161,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -106082,7 +109297,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -106585,7 +109800,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -107590,7 +110805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -108501,7 +111716,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -108917,7 +112132,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -109142,7 +112357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -109298,7 +112513,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -109465,7 +112680,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -109669,7 +112884,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -109824,7 +113039,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -110332,7 +113547,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -110549,7 +113764,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -110773,9 +113988,279 @@ spec: type: string type: object type: array - createTime: - description: The timestamp corresponding to the creation of this Key. - format: date-time + createTime: + description: The timestamp corresponding to the creation of this Key. + format: date-time + type: string + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/system: "true" + name: redisclusters.redis.cnrm.cloud.google.com +spec: + group: redis.cnrm.cloud.google.com + names: + categories: + - gcp + kind: RedisCluster + listKind: RedisClusterList + plural: redisclusters + singular: rediscluster + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: RedisCluster is the Schema for the RedisCluster API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: RedisClusterSpec defines the desired state of RedisCluster + properties: + authorizationMode: + description: Optional. The authorization mode of the Redis cluster. + If not provided, auth feature is disabled for the cluster. + type: string + deletionProtectionEnabled: + description: Optional. The delete operation will fail when the value + is set to true. + type: boolean + location: + description: Immutable. Location of the resource. + type: string + nodeType: + description: Optional. The type of a redis node in the cluster. NodeType + determines the underlying machine-type of a redis node. + type: string + persistenceConfig: + description: Optional. Persistence config (RDB, AOF) for the cluster. + properties: + aofConfig: + description: Optional. AOF configuration. This field will be ignored + if mode is not AOF. + properties: + appendFsync: + description: Optional. fsync configuration. + type: string + type: object + mode: + description: Optional. The mode of persistence. + type: string + rdbConfig: + description: Optional. RDB configuration. This field will be ignored + if mode is not RDB. + properties: + rdbSnapshotPeriod: + description: Optional. Period between RDB snapshots. + type: string + rdbSnapshotStartTime: + description: Optional. The time that the first snapshot was/will + be attempted, and to which future snapshots will be aligned. + If not provided, the current time will be used. + type: string + type: object + type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object + pscConfigs: + description: Required. Each PscConfig configures the consumer network + where IPs will be designated to the cluster for client access through + Private Service Connect Automation. Currently, only one PscConfig + is supported. + items: + properties: + networkRef: + description: Required. The network where the IP address of the + discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. + type: string + name: + description: The `name` field of a `ComputeNetwork` resource. + type: string + namespace: + description: The `namespace` field of a `ComputeNetwork` + resource. + type: string + type: object + required: + - networkRef + type: object + type: array + redisConfigs: + additionalProperties: + type: string + description: Optional. Key/Value pairs of customer overrides for mutable + Redis Configs + type: object + replicaCount: + description: Optional. The number of replica nodes per shard. + format: int32 + type: integer + resourceID: + description: The RedisCluster name. If not given, the metadata.name + will be used. + type: string + shardCount: + description: Required. Number of shards for the Redis cluster. + format: int32 + type: integer + transitEncryptionMode: + description: Optional. The in-transit encryption for the Redis cluster. + If not provided, encryption is disabled for the cluster. + type: string + zoneDistributionConfig: + description: Optional. This config will be used to determine how the + customer wants us to distribute cluster resources within the region. + properties: + mode: + description: Optional. The mode of zone distribution. Defaults + to MULTI_ZONE, when not specified. + type: string + zone: + description: Optional. When SINGLE ZONE distribution is selected, + zone field would be used to allocate all resources in that zone. + This is not applicable to MULTI_ZONE, and would be ignored for + MULTI_ZONE clusters. + type: string + type: object + required: + - location + - projectRef + type: object + status: + description: RedisClusterStatus defines the config connector machine state + of RedisCluster + properties: + conditions: + description: Conditions represent the latest available observations + of the object's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + externalRef: + description: A unique specifier for the RedisCluster resource in GCP. type: string observedGeneration: description: ObservedGeneration is the generation of the resource @@ -110783,27 +114268,119 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer + observedState: + description: ObservedState is the state of the resource as most recently + observed in GCP. + properties: + createTime: + description: Output only. The timestamp associated with the cluster + creation request. + type: string + discoveryEndpoints: + description: Output only. Endpoints created on each given network, + for Redis clients to connect to the cluster. Currently only + one discovery endpoint is supported. + items: + properties: + address: + description: Output only. Address of the exposed Redis endpoint + used by clients to connect to the service. The address + could be either IP or hostname. + type: string + port: + description: Output only. The port number of the exposed + Redis endpoint. + format: int32 + type: integer + pscConfig: + description: Output only. Customer configuration for where + the endpoint is created and accessed from. + properties: + network: + description: Required. The network where the IP address + of the discovery endpoint will be reserved, in the + form of projects/{network_project}/global/networks/{network_id}. + type: string + type: object + type: object + type: array + preciseSizeGb: + description: Output only. Precise value of redis memory size in + GB for the entire cluster. + type: number + pscConnections: + description: Output only. PSC connections for discovery of the + cluster topology and accessing the cluster. + items: + properties: + address: + description: Output only. The IP allocated on the consumer + network for the PSC forwarding rule. + type: string + forwardingRule: + description: 'Output only. The URI of the consumer side + forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.' + type: string + network: + description: The consumer network where the IP address resides, + in the form of projects/{project_id}/global/networks/{network_id}. + type: string + projectID: + description: Output only. The consumer project_id where + the forwarding rule is created from. + type: string + pscConnectionID: + description: Output only. The PSC connection id of the forwarding + rule connected to the service attachment. + type: string + type: object + type: array + sizeGb: + description: Output only. Redis memory size in GB for the entire + cluster rounded up to the next integer. + format: int32 + type: integer + state: + description: Output only. The current state of this cluster. Can + be CREATING, READY, UPDATING, DELETING and SUSPENDED + type: string + stateInfo: + description: Output only. Additional information about the current + state of the cluster. + properties: + updateInfo: + description: Describes ongoing update on the cluster when + cluster state is UPDATING. + properties: + targetReplicaCount: + description: Target number of replica nodes per shard. + format: int32 + type: integer + targetShardCount: + description: Target number of shards for redis cluster + format: int32 + type: integer + type: object + type: object + uid: + description: Output only. System assigned, unique identifier for + the cluster. + type: string + type: object type: object - required: - - spec type: object served: true storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -111321,7 +114898,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -111499,7 +115076,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -111780,7 +115357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112367,6 +115944,49 @@ spec: description: A list of Volumes to make available to containers. items: properties: + cloudSqlInstance: + description: For Cloud SQL volumes, contains the specific + instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run + for more information on how to connect Cloud SQL and + Cloud Run. + properties: + instanceRefs: + items: + description: 'The Cloud SQL instance connection + names, as can be found in https://console.cloud.google.com/sql/instances. + Visit https://cloud.google.com/sql/docs/mysql/connect-run + for more information on how to connect Cloud + SQL and Cloud Run. Format: {project}:{location}:{instance}' + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `connectionName` + field of a `SQLInstance` resource.' + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More + info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + type: array + type: object emptyDir: description: Ephemeral storage used as a shared volume. properties: @@ -112782,7 +116402,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113912,7 +117532,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114252,7 +117872,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114468,7 +118088,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114509,7 +118129,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: SecureSourceManagerInstance is the Schema for the monitoring + description: SecureSourceManagerInstance is the Schema for the SecureSourceManagerInstance API properties: apiVersion: @@ -114525,16 +118145,13 @@ spec: metadata: type: object spec: + description: SecureSourceManagerInstanceSpec defines the desired state + of SecureSourceManagerInstance properties: kmsKey: description: Optional. Immutable. Customer-managed encryption key name, in the format projects/*/locations/*/keyRings/*/cryptoKeys/*. type: string - labels: - additionalProperties: - type: string - description: Optional. Labels as key value pairs. - type: object location: description: Immutable. Location of the instance. type: string @@ -114580,10 +118197,12 @@ spec: - projectRef type: object status: + description: SecureSourceManagerInstanceStatus defines the config connector + machine state of SecureSourceManagerInstance properties: conditions: description: Conditions represent the latest available observations - of the SecureSourceManagerInstance's current state. + of the object's current state. items: properties: lastTransitionTime: @@ -114607,6 +118226,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the SecureSourceManagerInstance + resource in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -114616,7 +118239,8 @@ spec: format: int64 type: integer observedState: - description: ObservedState is the latest GCP state. + description: ObservedState is the state of the resource as most recently + observed in GCP. properties: hostConfig: description: Output only. A list of hostnames for this instance. @@ -114625,10 +118249,10 @@ spec: description: 'Output only. API hostname. This is the hostname to use for **Host: Data Plane** endpoints.' type: string - gitHttp: + gitHTTP: description: Output only. Git HTTP hostname. type: string - gitSsh: + gitSSH: description: Output only. Git SSH hostname. type: string html: @@ -114644,8 +118268,6 @@ spec: type: string type: object type: object - required: - - spec type: object served: true storage: true @@ -114656,7 +118278,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114861,7 +118483,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115024,7 +118646,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115244,7 +118866,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115401,7 +119023,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115553,7 +119175,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115700,7 +119322,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115878,7 +119500,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -116019,7 +119641,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -116201,7 +119823,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -116400,7 +120022,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -116609,7 +120231,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -116749,7 +120371,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -116805,179 +120427,236 @@ spec: type: object spec: properties: - charset: - description: |- - The charset value. See MySQL's - [Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html) - and Postgres' [Character Set Support](https://www.postgresql.org/docs/9.6/static/multibyte.html) - for more details and supported values. Postgres databases only support - a value of 'UTF8' at creation time. - type: string - collation: - description: |- - The collation value. See MySQL's - [Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html) - and Postgres' [Collation Support](https://www.postgresql.org/docs/9.6/static/collation.html) - for more details and supported values. Postgres databases only support - a value of 'en_US.UTF8' at creation time. - type: string - deletionPolicy: - description: |- - The deletion policy for the database. Setting ABANDON allows the resource - to be abandoned rather than deleted. This is useful for Postgres, where databases cannot be - deleted from the API if there are users other than cloudsqlsuperuser with access. Possible - values are: "ABANDON", "DELETE". Defaults to "DELETE". - type: string - instanceRef: - description: The Cloud SQL instance. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `name` field of a `SQLInstance` - resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - resourceID: - description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. - type: string - required: - - instanceRef - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - selfLink: - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.119.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: stable - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: sqlinstances.sql.cnrm.cloud.google.com -spec: - group: sql.cnrm.cloud.google.com - names: - categories: - - gcp - kind: SQLInstance - plural: sqlinstances - shortNames: - - gcpsqlinstance - - gcpsqlinstances - singular: sqlinstance - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: + charset: + description: |- + The charset value. See MySQL's + [Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html) + and Postgres' [Character Set Support](https://www.postgresql.org/docs/9.6/static/multibyte.html) + for more details and supported values. Postgres databases only support + a value of 'UTF8' at creation time. + type: string + collation: + description: |- + The collation value. See MySQL's + [Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html) + and Postgres' [Collation Support](https://www.postgresql.org/docs/9.6/static/collation.html) + for more details and supported values. Postgres databases only support + a value of 'en_US.UTF8' at creation time. + type: string + deletionPolicy: + description: |- + The deletion policy for the database. Setting ABANDON allows the resource + to be abandoned rather than deleted. This is useful for Postgres, where databases cannot be + deleted from the API if there are users other than cloudsqlsuperuser with access. Possible + values are: "ABANDON", "DELETE". Defaults to "DELETE". + type: string + instanceRef: + description: The Cloud SQL instance. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `SQLInstance` + resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The name of the resource. Used for + creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + required: + - instanceRef + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + selfLink: + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: stable + cnrm.cloud.google.com/system: "true" + name: sqlinstances.sql.cnrm.cloud.google.com +spec: + group: sql.cnrm.cloud.google.com + names: + categories: + - gcp + kind: SQLInstance + listKind: SQLInstanceList + plural: sqlinstances + shortNames: + - gcpsqlinstance + - gcpsqlinstances + singular: sqlinstance + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: SQLInstance is the Schema for the sql API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + cloneSource: + description: Create this database as a clone of a source instance. + Immutable. + properties: + binLogCoordinates: + description: Binary log coordinates, if specified, identify the + position up to which the source instance is cloned. If not specified, + the source instance is cloned up to the most recent binary log + coordinates. + properties: + binLogFileName: + description: Name of the binary log file for a Cloud SQL instance. + type: string + binLogPosition: + description: Position (offset) within the binary log file. + format: int64 + type: integer + type: object + databaseNames: + description: (SQL Server only) Clone only the specified databases + from the source instance. Clone all databases if empty. + items: + type: string + type: array + pointInTime: + description: Timestamp, if specified, identifies the time to which + the source instance is cloned. + type: string + sqlInstanceRef: + description: The source SQLInstance to clone + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The SQLInstance selfLink, when not managed by + Config Connector. + type: string + name: + description: The `name` field of a `SQLInstance` resource. + type: string + namespace: + description: The `namespace` field of a `SQLInstance` resource. + type: string + type: object + type: object databaseVersion: - default: MYSQL_5_6 description: The MySQL, PostgreSQL or SQL Server (beta) version to use. Supported values include MYSQL_5_6, MYSQL_5_7, MYSQL_8_0, POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, POSTGRES_14, @@ -117002,14 +120681,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object instanceType: @@ -117036,14 +120715,14 @@ spec: - external properties: external: - description: 'Allowed value: The `name` field of a `SQLInstance` - resource.' + description: The SQLInstance selfLink, when not managed by Config + Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `SQLInstance` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `SQLInstance` resource. type: string type: object region: @@ -117073,6 +120752,7 @@ spec: connectRetryInterval: description: Immutable. The number of seconds between connect retries. MySQL's default is 60 seconds. + format: int64 type: integer dumpFilePath: description: Immutable. Path to a SQL file in Google Cloud Storage @@ -117087,20 +120767,10 @@ spec: type: boolean masterHeartbeatPeriod: description: Immutable. Time in ms between replication heartbeats. + format: int64 type: integer password: description: Immutable. Password for the replication connection. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -117122,8 +120792,8 @@ spec: from. type: string required: - - name - key + - name type: object type: object type: object @@ -117145,17 +120815,6 @@ spec: type: string rootPassword: description: Initial root password. Required for MS SQL Server. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -117176,8 +120835,8 @@ spec: description: Name of the Secret to extract a value from. type: string required: - - name - key + - name type: object type: object type: object @@ -117203,22 +120862,25 @@ spec: threadsPerCore: description: The number of threads per physical core. Can be 1 or 2. + format: int64 type: integer type: object authorizedGaeApplications: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. items: type: string type: array availabilityType: - description: |- - The availability type of the Cloud SQL instance, high availability - (REGIONAL) or single zone (ZONAL). For all instances, ensure that - settings.backup_configuration.enabled is set to true. - For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled is set to true. - For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled + description: The availability type of the Cloud SQL instance, + high availability (REGIONAL) or single zone (ZONAL). For all + instances, ensure that settings.backup_configuration.enabled + is set to true. For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled + is set to true. For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled is set to true. Defaults to ZONAL. type: string backupConfiguration: @@ -117227,6 +120889,7 @@ spec: properties: retainedBackups: description: Number of backups to retain. + format: int64 type: integer retentionUnit: description: The unit that 'retainedBackups' represents. @@ -117256,6 +120919,7 @@ spec: description: The number of days of transaction logs we retain for point in time restore, from 1-7. (For PostgreSQL Enterprise Plus instances, from 1 to 35.). + format: int64 type: integer type: object collation: @@ -117265,9 +120929,12 @@ spec: description: Specifies if connections must use Cloud SQL connectors. type: string crashSafeReplication: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: boolean dataCacheConfig: description: Data cache configurations. @@ -117324,11 +120991,13 @@ spec: description: The maximum size, in GB, to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. + format: int64 type: integer diskSize: description: The size of data disk, in GB. Size of a running instance cannot be reduced but can be increased. The minimum value is 10GB. + format: int64 type: integer diskType: description: 'Immutable. The type of data disk: PD_SSD or PD_HDD. @@ -117348,10 +121017,12 @@ spec: description: Number of query execution plans captured by Insights per minute for all queries combined. Between 0 and 20. Default to 5. + format: int64 type: integer queryStringLength: description: Maximum query length stored in bytes. Between 256 and 4500. Default to 1024. + format: int64 type: integer recordApplicationTags: description: True if Query Insights will record application @@ -117413,14 +121084,15 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a - `ComputeNetwork` resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` + resource. type: string type: object pscConfig: @@ -117473,9 +121145,11 @@ spec: properties: day: description: Day of week (1-7), starting on Monday. + format: int64 type: integer hour: description: Hour of day (0-23), ignored if day not set. + format: int64 type: integer updateTrack: description: Receive updates earlier (canary) or later (stable). @@ -117494,6 +121168,7 @@ spec: type: boolean minLength: description: Minimum number of characters allowed. + format: int64 type: integer passwordChangeInterval: description: Minimum interval after which the password can @@ -117501,6 +121176,7 @@ spec: type: string reuseInterval: description: Number of previous passwords that cannot be reused. + format: int64 type: integer required: - enablePasswordPolicy @@ -117509,9 +121185,12 @@ spec: description: Pricing plan for this instance, can only be PER_USE. type: string replicationType: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: string sqlServerAuditConfig: properties: @@ -117533,14 +121212,15 @@ spec: - external properties: external: - description: 'Allowed value: The `url` field of a `StorageBucket` - resource.' + description: The StorageBucket selfLink, when not managed + by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `StorageBucket` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `StorageBucket` + resource. type: string type: object retentionInterval: @@ -117580,8 +121260,8 @@ spec: type: string type: array conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the SQLInstance's current state. items: properties: lastTransitionTime: @@ -117635,6 +121315,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer privateIpAddress: type: string @@ -117676,18 +121357,12 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117863,7 +121538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118104,7 +121779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118274,7 +121949,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118559,6 +122234,18 @@ spec: required: - retentionPeriod type: object + softDeletePolicy: + description: The bucket's soft delete policy, which defines the period + of time that soft-deleted objects will be retained, and cannot be + permanently deleted. If it is not provided, by default Google Cloud + Storage sets this to default soft delete policy. + properties: + retentionDurationSeconds: + description: The duration in seconds that soft-deleted objects + in the bucket will be retained and cannot be permanently deleted. + Default value is 604800. + type: integer + type: object storageClass: description: 'The Storage Class of the new bucket. Supported values include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, @@ -118625,6 +122312,27 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + softDeletePolicy: + description: The bucket's soft delete policy, which defines the + period of time that soft-deleted objects will be retained, and + cannot be permanently deleted. If it is not provided, by default + Google Cloud Storage sets this to default soft delete policy. + properties: + effectiveTime: + description: Server-determined value that indicates the time + from which the policy, or one with a greater retention, + was effective. This value is in RFC 3339 format. + type: string + retentionDurationSeconds: + description: The duration in seconds that soft-deleted objects + in the bucket will be retained and cannot be permanently + deleted. Default value is 604800. + type: integer + type: object + type: object selfLink: description: The URI of the created resource. type: string @@ -118648,7 +122356,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118834,7 +122542,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119002,7 +122710,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119205,7 +122913,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119367,7 +123075,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120005,7 +123713,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120188,7 +123896,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120365,7 +124073,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120530,7 +124238,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120704,7 +124412,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120924,7 +124632,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121311,7 +125019,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121758,7 +125466,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121903,7 +125611,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122139,7 +125847,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122354,7 +126062,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122542,7 +126250,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123052,7 +126760,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123234,7 +126942,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123424,7 +127132,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123703,7 +127411,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123895,7 +127603,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/operator/autopilot-channels/packages/configconnector/1.119.0/namespaced/0-cnrm-system.yaml b/operator/autopilot-channels/packages/configconnector/1.122.0/namespaced/0-cnrm-system.yaml similarity index 95% rename from operator/autopilot-channels/packages/configconnector/1.119.0/namespaced/0-cnrm-system.yaml rename to operator/autopilot-channels/packages/configconnector/1.122.0/namespaced/0-cnrm-system.yaml index 37f04a2622..89256c9a9d 100644 --- a/operator/autopilot-channels/packages/configconnector/1.119.0/namespaced/0-cnrm-system.yaml +++ b/operator/autopilot-channels/packages/configconnector/1.122.0/namespaced/0-cnrm-system.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Namespace metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-system @@ -11,7 +11,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -21,7 +21,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-resource-stats-recorder @@ -31,7 +31,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-unmanaged-detector @@ -41,7 +41,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-manager @@ -51,7 +51,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-cnrm-system-role @@ -72,7 +72,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-cnrm-system-role @@ -93,7 +93,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -1270,7 +1270,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role @@ -1320,7 +1320,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-cluster-role @@ -1378,7 +1378,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-ns-role @@ -1403,7 +1403,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-role @@ -1433,7 +1433,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-unmanaged-detector-cluster-role @@ -1464,7 +1464,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -2252,7 +2252,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role @@ -2315,7 +2315,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role-binding @@ -2333,7 +2333,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role-binding @@ -2351,7 +2351,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-admin-binding @@ -2374,7 +2374,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-binding @@ -2391,7 +2391,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-binding @@ -2408,7 +2408,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-unmanaged-detector-binding @@ -2425,7 +2425,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-binding @@ -2442,7 +2442,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -2459,7 +2459,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "48797" prometheus.io/scrape: "true" labels: @@ -2480,7 +2480,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2498,7 +2498,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2511,8 +2511,8 @@ spec: - /configconnector/recorder env: - name: CONFIG_CONNECTOR_VERSION - value: 1.119.0 - image: gcr.io/gke-release/cnrm/recorder:d63ad2a + value: 1.122.0 + image: gcr.io/gke-release/cnrm/recorder:e373e18 imagePullPolicy: Always name: recorder ports: @@ -2545,7 +2545,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2560,7 +2560,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2575,7 +2575,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: gcr.io/gke-release/cnrm/webhook:d63ad2a + image: gcr.io/gke-release/cnrm/webhook:e373e18 imagePullPolicy: Always name: webhook ports: @@ -2605,7 +2605,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2620,7 +2620,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2628,7 +2628,7 @@ spec: containers: - command: - /configconnector/deletiondefender - image: gcr.io/gke-release/cnrm/deletiondefender:d63ad2a + image: gcr.io/gke-release/cnrm/deletiondefender:e373e18 imagePullPolicy: Always name: deletiondefender ports: @@ -2658,7 +2658,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-unmanaged-detector cnrm.cloud.google.com/system: "true" @@ -2673,7 +2673,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-unmanaged-detector cnrm.cloud.google.com/system: "true" @@ -2681,7 +2681,7 @@ spec: containers: - command: - /configconnector/unmanageddetector - image: gcr.io/gke-release/cnrm/unmanageddetector:d63ad2a + image: gcr.io/gke-release/cnrm/unmanageddetector:e373e18 imagePullPolicy: Always name: unmanageddetector ports: @@ -2712,7 +2712,7 @@ kind: HorizontalPodAutoscaler metadata: annotations: autoscaling.alpha.kubernetes.io/metrics: '[{"type":"Resource","resource":{"name":"memory","targetAverageUtilization":70}}]' - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook diff --git a/operator/autopilot-channels/packages/configconnector/1.119.0/namespaced/per-namespace-components.yaml b/operator/autopilot-channels/packages/configconnector/1.122.0/namespaced/per-namespace-components.yaml similarity index 91% rename from operator/autopilot-channels/packages/configconnector/1.119.0/namespaced/per-namespace-components.yaml rename to operator/autopilot-channels/packages/configconnector/1.122.0/namespaced/per-namespace-components.yaml index cee00e83fe..5c4ea84336 100644 --- a/operator/autopilot-channels/packages/configconnector/1.119.0/namespaced/per-namespace-components.yaml +++ b/operator/autopilot-channels/packages/configconnector/1.122.0/namespaced/per-namespace-components.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 iam.gke.io/gcp-service-account: cnrm-system-${NAMESPACE?}@${PROJECT_ID?}.iam.gserviceaccount.com labels: cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} @@ -14,7 +14,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 finalizers: - configconnector.cnrm.cloud.google.com/finalizer labels: @@ -35,7 +35,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 finalizers: - configconnector.cnrm.cloud.google.com/finalizer labels: @@ -56,7 +56,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} cnrm.cloud.google.com/system: "true" @@ -75,7 +75,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} cnrm.cloud.google.com/system: "true" @@ -93,7 +93,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "8888" prometheus.io/scrape: "true" labels: @@ -117,7 +117,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} @@ -134,7 +134,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} @@ -146,7 +146,7 @@ spec: - --prometheus-scrape-endpoint=:8888 command: - /configconnector/manager - image: gcr.io/gke-release/cnrm/controller:d63ad2a + image: gcr.io/gke-release/cnrm/controller:e373e18 imagePullPolicy: Always name: manager ports: diff --git a/operator/autopilot-channels/stable b/operator/autopilot-channels/stable index 14b8cd4b41..d2ffcea725 100644 --- a/operator/autopilot-channels/stable +++ b/operator/autopilot-channels/stable @@ -1,2 +1,2 @@ manifests: - - version: 1.121.0 + - version: 1.122.0 diff --git a/operator/channels/packages/configconnector/1.119.0/cluster/gcp-identity/0-cnrm-system.yaml b/operator/channels/packages/configconnector/1.122.0/cluster/gcp-identity/0-cnrm-system.yaml similarity index 96% rename from operator/channels/packages/configconnector/1.119.0/cluster/gcp-identity/0-cnrm-system.yaml rename to operator/channels/packages/configconnector/1.122.0/cluster/gcp-identity/0-cnrm-system.yaml index e52ab580af..94f33efcf8 100644 --- a/operator/channels/packages/configconnector/1.119.0/cluster/gcp-identity/0-cnrm-system.yaml +++ b/operator/channels/packages/configconnector/1.122.0/cluster/gcp-identity/0-cnrm-system.yaml @@ -16,7 +16,7 @@ apiVersion: v1 kind: Namespace metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-system @@ -25,7 +25,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-controller-manager @@ -35,7 +35,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -45,7 +45,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-resource-stats-recorder @@ -55,7 +55,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-manager @@ -65,7 +65,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-cnrm-system-role @@ -86,7 +86,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-cnrm-system-role @@ -107,7 +107,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -1284,7 +1284,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role @@ -1334,7 +1334,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-cluster-role @@ -1392,7 +1392,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-ns-role @@ -1417,7 +1417,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-role @@ -1447,7 +1447,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -2235,7 +2235,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role @@ -2298,7 +2298,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role-binding @@ -2316,7 +2316,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role-binding @@ -2334,7 +2334,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-admin-binding @@ -2357,7 +2357,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-binding @@ -2374,7 +2374,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-binding @@ -2391,7 +2391,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-watcher-binding @@ -2408,7 +2408,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-binding @@ -2425,7 +2425,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-binding @@ -2442,7 +2442,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -2459,7 +2459,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "8888" prometheus.io/scrape: "true" labels: @@ -2481,7 +2481,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "48797" prometheus.io/scrape: "true" labels: @@ -2502,7 +2502,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2520,7 +2520,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2533,8 +2533,8 @@ spec: - /configconnector/recorder env: - name: CONFIG_CONNECTOR_VERSION - value: 1.119.0 - image: gcr.io/gke-release/cnrm/recorder:d63ad2a + value: 1.122.0 + image: gcr.io/gke-release/cnrm/recorder:e373e18 imagePullPolicy: Always name: recorder ports: @@ -2568,7 +2568,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2583,7 +2583,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2598,7 +2598,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: gcr.io/gke-release/cnrm/webhook:d63ad2a + image: gcr.io/gke-release/cnrm/webhook:e373e18 imagePullPolicy: Always name: webhook ports: @@ -2628,7 +2628,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/system: "true" @@ -2643,7 +2643,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/system: "true" @@ -2656,7 +2656,7 @@ spec: env: - name: GOOGLE_APPLICATION_CREDENTIALS value: /var/secrets/google/key.json - image: gcr.io/gke-release/cnrm/controller:d63ad2a + image: gcr.io/gke-release/cnrm/controller:e373e18 imagePullPolicy: Always name: manager ports: @@ -2693,7 +2693,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2708,7 +2708,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2716,7 +2716,7 @@ spec: containers: - command: - /configconnector/deletiondefender - image: gcr.io/gke-release/cnrm/deletiondefender:d63ad2a + image: gcr.io/gke-release/cnrm/deletiondefender:e373e18 imagePullPolicy: Always name: deletiondefender ports: @@ -2747,7 +2747,7 @@ kind: HorizontalPodAutoscaler metadata: annotations: autoscaling.alpha.kubernetes.io/metrics: '[{"type":"Resource","resource":{"name":"memory","targetAverageUtilization":70}}]' - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook diff --git a/operator/channels/packages/configconnector/1.119.0/cluster/workload-identity/0-cnrm-system.yaml b/operator/channels/packages/configconnector/1.122.0/cluster/workload-identity/0-cnrm-system.yaml similarity index 96% rename from operator/channels/packages/configconnector/1.119.0/cluster/workload-identity/0-cnrm-system.yaml rename to operator/channels/packages/configconnector/1.122.0/cluster/workload-identity/0-cnrm-system.yaml index 5710be80d4..0417211715 100644 --- a/operator/channels/packages/configconnector/1.119.0/cluster/workload-identity/0-cnrm-system.yaml +++ b/operator/channels/packages/configconnector/1.122.0/cluster/workload-identity/0-cnrm-system.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Namespace metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-system @@ -11,7 +11,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 iam.gke.io/gcp-service-account: cnrm-system@${PROJECT_ID?}.iam.gserviceaccount.com labels: cnrm.cloud.google.com/system: "true" @@ -22,7 +22,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -32,7 +32,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-resource-stats-recorder @@ -42,7 +42,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-manager @@ -52,7 +52,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-cnrm-system-role @@ -73,7 +73,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-cnrm-system-role @@ -94,7 +94,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -1271,7 +1271,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role @@ -1321,7 +1321,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-cluster-role @@ -1379,7 +1379,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-ns-role @@ -1404,7 +1404,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-role @@ -1434,7 +1434,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -2222,7 +2222,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role @@ -2285,7 +2285,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role-binding @@ -2303,7 +2303,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role-binding @@ -2321,7 +2321,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-admin-binding @@ -2344,7 +2344,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-binding @@ -2361,7 +2361,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-binding @@ -2378,7 +2378,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-watcher-binding @@ -2395,7 +2395,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-binding @@ -2412,7 +2412,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-binding @@ -2429,7 +2429,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -2446,7 +2446,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "8888" prometheus.io/scrape: "true" labels: @@ -2468,7 +2468,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "48797" prometheus.io/scrape: "true" labels: @@ -2489,7 +2489,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2507,7 +2507,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2520,8 +2520,8 @@ spec: - /configconnector/recorder env: - name: CONFIG_CONNECTOR_VERSION - value: 1.119.0 - image: gcr.io/gke-release/cnrm/recorder:d63ad2a + value: 1.122.0 + image: gcr.io/gke-release/cnrm/recorder:e373e18 imagePullPolicy: Always name: recorder ports: @@ -2573,7 +2573,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2588,7 +2588,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2603,7 +2603,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: gcr.io/gke-release/cnrm/webhook:d63ad2a + image: gcr.io/gke-release/cnrm/webhook:e373e18 imagePullPolicy: Always name: webhook ports: @@ -2633,7 +2633,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/system: "true" @@ -2648,7 +2648,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/system: "true" @@ -2658,7 +2658,7 @@ spec: - --prometheus-scrape-endpoint=:8888 command: - /configconnector/manager - image: gcr.io/gke-release/cnrm/controller:d63ad2a + image: gcr.io/gke-release/cnrm/controller:e373e18 imagePullPolicy: Always name: manager ports: @@ -2706,7 +2706,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2721,7 +2721,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2729,7 +2729,7 @@ spec: containers: - command: - /configconnector/deletiondefender - image: gcr.io/gke-release/cnrm/deletiondefender:d63ad2a + image: gcr.io/gke-release/cnrm/deletiondefender:e373e18 imagePullPolicy: Always name: deletiondefender ports: @@ -2760,7 +2760,7 @@ kind: HorizontalPodAutoscaler metadata: annotations: autoscaling.alpha.kubernetes.io/metrics: '[{"type":"Resource","resource":{"name":"memory","targetAverageUtilization":70}}]' - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook diff --git a/operator/channels/packages/configconnector/1.119.0/crds.yaml b/operator/channels/packages/configconnector/1.122.0/crds.yaml similarity index 92% rename from operator/channels/packages/configconnector/1.119.0/crds.yaml rename to operator/channels/packages/configconnector/1.122.0/crds.yaml index d8369cd9d9..13f5a24abc 100644 --- a/operator/channels/packages/configconnector/1.119.0/crds.yaml +++ b/operator/channels/packages/configconnector/1.122.0/crds.yaml @@ -16,7 +16,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -264,7 +264,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -650,7 +650,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -780,7 +780,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -949,7 +949,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -1262,7 +1262,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -2456,7 +2456,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -2895,7 +2895,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -3617,6 +3617,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -4328,6 +4336,14 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + clusterType: + description: 'The type of cluster. If not set, defaults to PRIMARY. + Default value: "PRIMARY" Possible values: ["PRIMARY", "SECONDARY"].' + type: string + type: object uid: description: The system-generated UID of the resource. type: string @@ -4350,7 +4366,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -4528,6 +4544,27 @@ spec: description: The number of CPU's in the VM instance. type: integer type: object + networkConfig: + description: Instance level network configuration. + properties: + authorizedExternalNetworks: + description: A list of external networks authorized to access + this instance. This field is only allowed to be set when 'enable_public_ip' + is set to true. + items: + properties: + cidrRange: + description: CIDR range for one authorized network of the + instance. + type: string + type: object + type: array + enablePublicIp: + description: Enabling public ip for the instance. If a user wishes + to disable this, please also clear the list of the authorized + external networks set on the same instance. + type: boolean + type: object readPoolConfig: description: Read pool specific config. If the instance type is READ_POOL, this configuration must be provided. @@ -4590,6 +4627,11 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + publicIpAddress: + description: The public IP addresses for the Instance. This is available + ONLY when networkConfig.enablePublicIp is set to true. This is the + connection endpoint for an end-user application. + type: string reconciling: description: Set to true if the current state of Instance does not match the user's intended state, and the service is actively updating @@ -4769,6 +4811,27 @@ spec: description: The number of CPU's in the VM instance. type: integer type: object + networkConfig: + description: Instance level network configuration. + properties: + authorizedExternalNetworks: + description: A list of external networks authorized to access + this instance. This field is only allowed to be set when 'enable_public_ip' + is set to true. + items: + properties: + cidrRange: + description: CIDR range for one authorized network of the + instance. + type: string + type: object + type: array + enablePublicIp: + description: Enabling public ip for the instance. If a user wishes + to disable this, please also clear the list of the authorized + external networks set on the same instance. + type: boolean + type: object readPoolConfig: description: Read pool specific config. If the instance type is READ_POOL, this configuration must be provided. @@ -4831,6 +4894,11 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + publicIpAddress: + description: The public IP addresses for the Instance. This is available + ONLY when networkConfig.enablePublicIp is set to true. This is the + connection endpoint for an end-user application. + type: string reconciling: description: Set to true if the current state of Instance does not match the user's intended state, and the service is actively updating @@ -4865,7 +4933,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5061,7 +5129,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5335,7 +5403,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5494,7 +5562,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5658,7 +5726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5831,7 +5899,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -5975,7 +6043,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6105,7 +6173,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6233,7 +6301,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -6408,7 +6476,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6538,7 +6606,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6714,7 +6782,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -6843,7 +6911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -7137,7 +7205,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7272,7 +7340,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7524,7 +7592,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7699,7 +7767,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -7832,7 +7900,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -8533,7 +8601,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -8683,7 +8751,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9134,7 +9202,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9501,7 +9569,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9703,7 +9771,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -9874,7 +9942,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10054,7 +10122,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10230,7 +10298,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10457,7 +10525,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -10513,59 +10581,6 @@ spec: type: object spec: properties: - aws: - description: Connection properties specific to Amazon Web Services. - properties: - accessRole: - description: Authentication using Google owned service account - to assume into customer's AWS IAM Role. - properties: - iamRoleId: - description: The user’s AWS IAM Role that trusts the Google-owned - AWS IAM user Connection. - type: string - identity: - description: A unique Google-owned and Google-generated identity - for the Connection. This identity will be used to access - the user's AWS IAM Role. - type: string - required: - - iamRoleId - type: object - required: - - accessRole - type: object - azure: - description: Container for connection properties specific to Azure. - properties: - application: - description: The name of the Azure Active Directory Application. - type: string - clientId: - description: The client id of the Azure Active Directory Application. - type: string - customerTenantId: - description: The id of customer's directory that host the data. - type: string - federatedApplicationClientId: - description: The Azure Application (client) ID where the federated - credentials will be hosted. - type: string - identity: - description: A unique Google-owned and Google-generated identity - for the Connection. This identity will be used to access the - user's Azure Active Directory Application. - type: string - objectId: - description: The object id of the Azure Active Directory Application. - type: string - redirectUri: - description: The URL user will be redirected to after granting - consent during connection setup. - type: string - required: - - customerTenantId - type: object cloudResource: description: Container for connection properties for delegation of access to GCP resources. @@ -10575,99 +10590,6 @@ spec: of this connection. type: string type: object - cloudSpanner: - description: Connection properties specific to Cloud Spanner. - properties: - database: - description: Cloud Spanner database in the form 'project/instance/database'. - type: string - useParallelism: - description: If parallelism should be used when reading from Cloud - Spanner. - type: boolean - useServerlessAnalytics: - description: If the serverless analytics service should be used - to read data from Cloud Spanner. useParallelism must be set - when using serverless analytics. - type: boolean - required: - - database - type: object - cloudSql: - description: Connection properties specific to the Cloud SQL. - properties: - credential: - description: Cloud SQL properties. - properties: - password: - description: Password for database. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom - properties: - value: - description: Value of the field. Cannot be used if 'valueFrom' - is specified. - type: string - valueFrom: - description: Source for the field's value. Cannot be used - if 'value' is specified. - properties: - secretKeyRef: - description: Reference to a value with the given key - in the given Secret in the resource's namespace. - properties: - key: - description: Key that identifies the value to - be extracted. - type: string - name: - description: Name of the Secret to extract a value - from. - type: string - required: - - name - - key - type: object - type: object - type: object - username: - description: Username for database. - type: string - required: - - password - - username - type: object - database: - description: Database name. - type: string - instanceId: - description: Cloud SQL instance ID in the form project:location:instance. - type: string - serviceAccountId: - description: When the connection is used in the context of an - operation in BigQuery, this service account will serve as the - identity being used for connecting to the CloudSQL instance - specified in this connection. - type: string - type: - description: 'Type of the Cloud SQL database. Possible values: - ["DATABASE_TYPE_UNSPECIFIED", "POSTGRES", "MYSQL"].' - type: string - required: - - credential - - database - - instanceId - - type - type: object description: description: A descriptive description for the connection. type: string @@ -10763,180 +10685,19 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.119.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: bigquerydatapolicydatapolicies.bigquerydatapolicy.cnrm.cloud.google.com -spec: - group: bigquerydatapolicy.cnrm.cloud.google.com - names: - categories: - - gcp - kind: BigQueryDataPolicyDataPolicy - plural: bigquerydatapolicydatapolicies - shortNames: - - gcpbigquerydatapolicydatapolicy - - gcpbigquerydatapolicydatapolicies - singular: bigquerydatapolicydatapolicy - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - dataMaskingPolicy: - description: The data masking policy that specifies the data masking - rule to use. - properties: - predefinedExpression: - description: 'The available masking rules. Learn more here: https://cloud.google.com/bigquery/docs/column-data-masking-intro#masking_options. - Possible values: ["SHA256", "ALWAYS_NULL", "DEFAULT_MASKING_VALUE", - "LAST_FOUR_CHARACTERS", "FIRST_FOUR_CHARACTERS", "EMAIL_MASK", - "DATE_YEAR_MASK"].' - type: string - required: - - predefinedExpression - type: object - dataPolicyType: - description: 'The enrollment level of the service. Possible values: - ["COLUMN_LEVEL_SECURITY_POLICY", "DATA_MASKING_POLICY"].' - type: string - location: - description: Immutable. The name of the location of the data policy. - type: string - policyTag: - description: Policy tag resource name, in the format of projects/{project_number}/locations/{locationId}/taxonomies/{taxonomyId}/policyTags/{policyTag_id}. - type: string - projectRef: - description: The project that this resource belongs to. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external + observedState: + description: The observed state of the underlying GCP resource. properties: - external: - description: 'Allowed value: The `name` field of a `Project` resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string + cloudResource: + description: Container for connection properties for delegation + of access to GCP resources. + properties: + serviceAccountId: + description: The account ID of the service created for the + purpose of this connection. + type: string + type: object type: object - resourceID: - description: Immutable. Optional. The dataPolicyId of the resource. - Used for creation and acquisition. When unset, the value of `metadata.name` - is used as the default. - type: string - required: - - dataPolicyType - - location - - policyTag - - projectRef - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - name: - description: Resource name of this data policy, in the format of projects/{project_number}/locations/{locationId}/dataPolicies/{dataPolicyId}. - type: string - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer type: object required: - spec @@ -10956,7 +10717,181 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: alpha + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: bigquerydatapolicydatapolicies.bigquerydatapolicy.cnrm.cloud.google.com +spec: + group: bigquerydatapolicy.cnrm.cloud.google.com + names: + categories: + - gcp + kind: BigQueryDataPolicyDataPolicy + plural: bigquerydatapolicydatapolicies + shortNames: + - gcpbigquerydatapolicydatapolicy + - gcpbigquerydatapolicydatapolicies + singular: bigquerydatapolicydatapolicy + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + dataMaskingPolicy: + description: The data masking policy that specifies the data masking + rule to use. + properties: + predefinedExpression: + description: 'The available masking rules. Learn more here: https://cloud.google.com/bigquery/docs/column-data-masking-intro#masking_options. + Possible values: ["SHA256", "ALWAYS_NULL", "DEFAULT_MASKING_VALUE", + "LAST_FOUR_CHARACTERS", "FIRST_FOUR_CHARACTERS", "EMAIL_MASK", + "DATE_YEAR_MASK"].' + type: string + required: + - predefinedExpression + type: object + dataPolicyType: + description: 'The enrollment level of the service. Possible values: + ["COLUMN_LEVEL_SECURITY_POLICY", "DATA_MASKING_POLICY"].' + type: string + location: + description: Immutable. The name of the location of the data policy. + type: string + policyTag: + description: Policy tag resource name, in the format of projects/{project_number}/locations/{locationId}/taxonomies/{taxonomyId}/policyTags/{policyTag_id}. + type: string + projectRef: + description: The project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `Project` resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The dataPolicyId of the resource. + Used for creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + required: + - dataPolicyType + - location + - policyTag + - projectRef + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + name: + description: Resource name of this data policy, in the format of projects/{project_number}/locations/{locationId}/dataPolicies/{dataPolicyId}. + type: string + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11214,7 +11149,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11624,7 +11559,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -11924,7 +11859,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -12780,7 +12715,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -12967,7 +12902,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13157,7 +13092,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13419,7 +13354,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -13792,6 +13727,10 @@ spec: - field - range type: object + requirePartitionFilter: + description: If set to true, queries over this table require a partition + filter that can be used for partition elimination to be specified. + type: boolean resourceID: description: Immutable. Optional. The tableId of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` @@ -13883,9 +13822,10 @@ spec: time. type: string requirePartitionFilter: - description: If set to true, queries over this table require a - partition filter that can be used for partition elimination - to be specified. + description: DEPRECATED. This field is deprecated; please use + the top level field with the same name instead. If set to true, + queries over this table require a partition filter that can + be used for partition elimination to be specified. type: boolean type: description: The supported types are DAY, HOUR, MONTH, and YEAR, @@ -13999,7 +13939,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14187,7 +14127,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14408,7 +14348,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -14422,6 +14362,7 @@ spec: categories: - gcp kind: BigtableInstance + listKind: BigtableInstanceList plural: bigtableinstances shortNames: - gcpbigtableinstance @@ -14449,20 +14390,22 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: BigtableInstance is the Schema for the BigtableInstance API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: + description: BigtableInstanceSpec defines the desired state of BigtableInstance properties: cluster: description: A block of cluster configuration options. This can be @@ -14476,12 +14419,15 @@ spec: cpuTarget: description: The target CPU utilization for autoscaling. Value must be between 10 and 80. + format: int64 type: integer maxNodes: description: The maximum number of nodes for autoscaling. + format: int64 type: integer minNodes: description: The minimum number of nodes for autoscaling. + format: int64 type: integer storageTarget: description: The target storage utilization for autoscaling, @@ -14492,6 +14438,7 @@ spec: will not change, or if the cluster is just being created, it will use the default value of 2560 for SSD clusters and 8192 for HDD clusters. + format: int64 type: integer required: - cpuTarget @@ -14506,7 +14453,9 @@ spec: kmsKeyRef: description: |- Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable - cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains + cluster. The requirements for this key are: + + 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the cloudkms.cryptoKeyEncrypterDecrypter role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. 3) All clusters within an instance must use the same CMEK key access to this encryption key. @@ -14526,20 +14475,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object numNodes: description: The number of nodes in the cluster. If no value is set, Cloud Bigtable automatically allocates nodes based on your data footprint and optimized for 50% storage utilization. + format: int64 type: integer storageType: description: The storage type to use. One of "SSD" or "HDD". @@ -14561,8 +14511,9 @@ spec: and is intended to be dropped in a later version of the resource. type: boolean displayName: - description: The human-readable display name of the Bigtable instance. - Defaults to the instance name. + description: Required. The descriptive name for this instance as it + appears in UIs. Can be changed at any time, but should be kept globally + unique to avoid confusion. type: string instanceType: description: DEPRECATED. It is recommended to leave this field unspecified @@ -14575,182 +14526,178 @@ spec: but without the accompanying restrictions. The instance type to create. One of "DEVELOPMENT" or "PRODUCTION". Defaults to "PRODUCTION". type: string + resourceID: + description: The Instance name. If not given, the metadata.name will + be used. + type: string + type: object + status: + description: BigtableInstanceStatus defines the config connector machine + state of BigtableInstance + properties: + conditions: + description: Conditions represent the latest available observations + of the object's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: stable + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: bigtabletables.bigtable.cnrm.cloud.google.com +spec: + group: bigtable.cnrm.cloud.google.com + names: + categories: + - gcp + kind: BigtableTable + plural: bigtabletables + shortNames: + - gcpbigtabletable + - gcpbigtabletables + singular: bigtabletable + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + changeStreamRetention: + description: Duration to retain change stream data for the table. + Set to 0 to disable. Must be between 1 and 7 days. + type: string + columnFamily: + description: A group of columns within a table which share a common + configuration. This can be specified multiple times. + items: + properties: + family: + description: The name of the column family. + type: string + required: + - family + type: object + type: array + deletionProtection: + description: A field to make the table protected against data loss + i.e. when set to PROTECTED, deleting the table, the column families + in the table, and the instance containing the table would be prohibited. + If not provided, currently deletion protection will be set to UNPROTECTED + as it is the API default value. + type: string + instanceRef: + description: The name of the Bigtable instance. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `BigtableInstance` + resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object resourceID: description: Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default. type: string - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.119.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: stable - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: bigtabletables.bigtable.cnrm.cloud.google.com -spec: - group: bigtable.cnrm.cloud.google.com - names: - categories: - - gcp - kind: BigtableTable - plural: bigtabletables - shortNames: - - gcpbigtabletable - - gcpbigtabletables - singular: bigtabletable - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - changeStreamRetention: - description: Duration to retain change stream data for the table. - Set to 0 to disable. Must be between 1 and 7 days. - type: string - columnFamily: - description: A group of columns within a table which share a common - configuration. This can be specified multiple times. - items: - properties: - family: - description: The name of the column family. - type: string - required: - - family - type: object - type: array - deletionProtection: - description: A field to make the table protected against data loss - i.e. when set to PROTECTED, deleting the table, the column families - in the table, and the instance containing the table would be prohibited. - If not provided, currently deletion protection will be set to UNPROTECTED - as it is the API default value. - type: string - instanceRef: - description: The name of the Bigtable instance. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `name` field of a `BigtableInstance` - resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - resourceID: - description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. - type: string - splitKeys: - items: - type: string - type: array - required: - - instanceRef + splitKeys: + items: + type: string + type: array + required: + - instanceRef type: object status: properties: @@ -14806,7 +14753,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15265,7 +15212,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15533,7 +15480,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -15958,7 +15905,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -16399,7 +16346,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -16752,7 +16699,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -17573,7 +17520,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -17890,7 +17837,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18129,7 +18076,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18360,7 +18307,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -18590,7 +18537,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20098,7 +20045,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20145,11 +20092,219 @@ spec: properties: networkConfig: properties: - PeeredNetworkIPRange: + egressOption: + type: string + peeredNetworkIPRange: + type: string + peeredNetworkRef: + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. + type: string + name: + description: The `name` field of a `ComputeNetwork` resource. + type: string + namespace: + description: The `namespace` field of a `ComputeNetwork` + resource. + type: string + type: object + required: + - peeredNetworkRef + type: object + workerConfig: + properties: + diskSizeGb: + format: int64 + type: integer + machineType: + type: string + type: object + required: + - workerConfig + type: object + projectRef: + description: The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object + resourceID: + type: string + required: + - location + - privatePoolV1Config + - projectRef + type: object + status: + description: CloudBuildWorkerPoolStatus defines the observed state of + Instance + properties: + conditions: + description: Conditions represent the latest available observations + of the object's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + format: int64 + type: integer + observedState: + description: ObservedState is the state of the resource as most recently + observed in GCP. + properties: + createTime: + description: The creation timestamp of the workerpool. + format: date-time + type: string + networkConfig: + properties: + egressOption: + type: string + peeredNetwork: + type: string + peeredNetworkIPRange: type: string + type: object + updateTime: + description: The last update timestamp of the workerpool. + format: date-time + type: string + workerConfig: + properties: + diskSizeGb: + format: int64 + type: integer + machineType: + type: string + type: object + type: object + type: object + type: object + served: true + storage: false + subresources: + status: {} + - name: v1beta1 + schema: + openAPIV3Schema: + description: CloudBuildWorkerPool is the Schema for the CloudBuild WorkerPool + API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: CloudBuildWorkerPoolSpec defines the desired state of Instance + properties: + displayName: + description: A user-specified, human-readable name for the `WorkerPool`. + If provided, this value must be 1-63 characters. + type: string + location: + type: string + privatePoolV1Config: + description: Legacy Private Pool configuration. + properties: + networkConfig: + description: Network configuration for the pool. + properties: egressOption: + description: Option to configure network egress for the workers. type: string + peeredNetworkIPRange: + description: Immutable. Subnet IP range within the peered + network. This is specified in CIDR notation with a slash + and the subnet prefix size. You can optionally specify an + IP address before the subnet prefix value. e.g. `192.168.0.0/29` + would specify an IP range starting at 192.168.0.0 with a + prefix size of 29 bits. `/16` would specify a prefix size + of 16 bits, with an automatically determined IP within the + peered VPC. If unspecified, a value of `/24` will be used. + type: string + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf peeredNetworkRef: + description: Immutable. The network definition that the workers + are peered to. If this section is left empty, the workers + will be peered to `WorkerPool.project_id` on the service + producer network. oneOf: - not: required: @@ -20167,7 +20322,7 @@ spec: properties: external: description: The compute network selflink of form "projects//global/networks/", - when not managed by KCC. + when not managed by Config Connector. type: string name: description: The `name` field of a `ComputeNetwork` resource. @@ -20177,15 +20332,24 @@ spec: resource. type: string type: object - required: - - peeredNetworkRef + x-kubernetes-validations: + - message: the field is immutable + rule: self == oldSelf type: object workerConfig: + description: Machine configuration for the workers in the pool. properties: diskSizeGb: + description: Size of the disk attached to the worker, in GB. + See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). + Specify a value of up to 2000. If `0` is specified, Cloud + Build will use a standard disk size. format: int64 type: integer machineType: + description: Machine type of a worker, such as `e2-medium`. + See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). + If left blank, Cloud Build will use a sensible default. type: string type: object required: @@ -20224,6 +20388,8 @@ spec: type: string type: object resourceID: + description: The GCP resource identifier. If not given, the metadata.name + will be used. type: string required: - location @@ -20260,6 +20426,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique Config Connector specifier for the resource + in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -20276,13 +20446,30 @@ spec: description: The creation timestamp of the workerpool. format: date-time type: string + etag: + description: The Checksum computed by the server, using weak indicator. + type: string networkConfig: + description: Network configuration for the pool. properties: egressOption: + description: Option to configure network egress for the workers. type: string peeredNetwork: + description: Immutable. The network definition that the workers + are peered to. If this section is left empty, the workers + will be peered to `WorkerPool.project_id` on the service + producer network. type: string peeredNetworkIPRange: + description: Immutable. Subnet IP range within the peered + network. This is specified in CIDR notation with a slash + and the subnet prefix size. You can optionally specify an + IP address before the subnet prefix value. e.g. `192.168.0.0/29` + would specify an IP range starting at 192.168.0.0 with a + prefix size of 29 bits. `/16` would specify a prefix size + of 16 bits, with an automatically determined IP within the + peered VPC. If unspecified, a value of `/24` will be used. type: string type: object updateTime: @@ -20290,13 +20477,23 @@ spec: format: date-time type: string workerConfig: + description: Machine configuration for the workers in the pool. properties: diskSizeGb: + description: Size of the disk attached to the worker, in GB. + See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). + Specify a value of up to 2000. If `0` is specified, Cloud + Build will use a standard disk size. format: int64 type: integer machineType: + description: Machine type of a worker, such as `e2-medium`. + See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). + If left blank, Cloud Build will use a sensible default. type: string type: object + required: + - workerConfig type: object type: object type: object @@ -20309,7 +20506,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -20783,7 +20980,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -21215,7 +21412,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -21413,7 +21610,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -21680,11 +21877,11 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha + cnrm.cloud.google.com/stability-level: stable cnrm.cloud.google.com/system: "true" cnrm.cloud.google.com/tf2crd: "true" name: cloudidsendpoints.cloudids.cnrm.cloud.google.com @@ -21718,7 +21915,7 @@ spec: jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime name: Status Age type: date - name: v1alpha1 + name: v1beta1 schema: openAPIV3Schema: properties: @@ -21850,16 +22047,187 @@ spec: type: string type: object type: array - createTime: - description: Creation timestamp in RFC 3339 text format. + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + createTime: + description: Creation timestamp in RFC 3339 text format. + type: string + endpointForwardingRule: + description: URL of the endpoint's network address to which traffic + is to be sent by Packet Mirroring. + type: string + endpointIP: + description: Internal IP address of the endpoint's network entry + point. + type: string + updateTime: + description: Last update timestamp in RFC 3339 text format. + type: string + type: object + type: object + required: + - spec + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + description: + description: Immutable. An optional description of the endpoint. type: string - endpointForwardingRule: - description: URL of the endpoint's network address to which traffic - is to be sent by Packet Mirroring. + location: + description: Immutable. The location for the endpoint. type: string - endpointIp: - description: Internal IP address of the endpoint's network entry point. + networkRef: + description: |- + Immutable. Name of the VPC network that is connected + to the IDS endpoint. This can either contain the VPC network name + itself (like "src-net") or the full URL to the network (like "projects/{project_id}/global/networks/src-net"). + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `ComputeNetwork` + resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + projectRef: + description: The project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `Project` resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The name of the resource. Used for + creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + severity: + description: 'Immutable. The minimum alert severity level that is + reported by the endpoint. Possible values: ["INFORMATIONAL", "LOW", + "MEDIUM", "HIGH", "CRITICAL"].' type: string + threatExceptions: + description: 'Configuration for threat IDs excluded from generating + alerts. Limit: 99 IDs.' + items: + type: string + type: array + required: + - location + - networkRef + - projectRef + - severity + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -21867,9 +22235,24 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer - updateTime: - description: Last update timestamp in RFC 3339 text format. - type: string + observedState: + description: The observed state of the underlying GCP resource. + properties: + createTime: + description: Creation timestamp in RFC 3339 text format. + type: string + endpointForwardingRule: + description: URL of the endpoint's network address to which traffic + is to be sent by Packet Mirroring. + type: string + endpointIP: + description: Internal IP address of the endpoint's network entry + point. + type: string + updateTime: + description: Last update timestamp in RFC 3339 text format. + type: string + type: object type: object required: - spec @@ -21889,7 +22272,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22068,7 +22451,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -22330,7 +22713,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -22868,7 +23251,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23139,7 +23522,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23410,7 +23793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -23865,7 +24248,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24135,7 +24518,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -24349,7 +24732,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -25628,7 +26011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -25842,7 +26225,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26019,7 +26402,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26783,7 +27166,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -26934,7 +27317,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27154,7 +27537,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27346,7 +27729,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -27688,7 +28071,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -28066,7 +28449,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -28080,6 +28463,7 @@ spec: categories: - gcp kind: ComputeForwardingRule + listKind: ComputeForwardingRuleList plural: computeforwardingrules shortNames: - gcpcomputeforwardingrule @@ -28107,16 +28491,17 @@ spec: name: v1beta1 schema: openAPIV3Schema: + description: ComputeForwardingRule is the Schema for the compute API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object @@ -28157,9 +28542,8 @@ spec: whether the PSC endpoint can be accessed from another region. type: boolean backendServiceRef: - description: |- - A ComputeBackendService to receive the matched traffic. This is - used only for internal load balancing. + description: A ComputeBackendService to receive the matched traffic. + This is used only for internal load balancing. oneOf: - not: required: @@ -28176,20 +28560,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeBackendService` - resource.' + description: The ComputeBackendService selflink in the form "projects/{{project}}/global/backendServices/{{name}}" + or "projects/{{project}}/regions/{{region}}/backendServices/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeBackendService` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeBackendService` + resource. type: string type: object description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. + description: Immutable. An optional description of this resource. + Provide this property when you create the resource. type: string ipAddress: description: |- @@ -28212,11 +28597,6 @@ spec: forwarding rule. By default, if this field is empty, an ephemeral internal IP address will be automatically allocated from the IP range of the subnet or network configured for this forwarding rule. - oneOf: - - required: - - addressRef - - required: - - ip properties: addressRef: oneOf: @@ -28235,14 +28615,14 @@ spec: - external properties: external: - description: 'Allowed value: The `address` field of a `ComputeAddress` - resource.' + description: The ComputeAddress selflink in the form "projects/{{project}}/regions/{{region}}/addresses/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeAddress` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeAddress` resource. type: string type: object ip: @@ -28324,14 +28704,12 @@ spec: items: properties: name: - description: |- - Immutable. Name of the metadata label. The length must be between - 1 and 1024 characters, inclusive. + description: Immutable. Name of the metadata label. The + length must be between 1 and 1024 characters, inclusive. type: string value: - description: |- - Immutable. The value that the label must match. The value has a maximum - length of 1024 characters. + description: Immutable. The value that the label must + match. The value has a maximum length of 1024 characters. type: string required: - name @@ -28354,11 +28732,10 @@ spec: type: object type: array networkRef: - description: |- - This field is not used for external load balancing. For internal - load balancing, this field identifies the network that the load - balanced IP should belong to for this forwarding rule. If this - field is not specified, the default network will be used. + description: This field is not used for external load balancing. For + internal load balancing, this field identifies the network that + the load balanced IP should belong to for this forwarding rule. + If this field is not specified, the default network will be used. oneOf: - not: required: @@ -28375,14 +28752,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` resource. type: string type: object networkTier: @@ -28416,7 +28793,6 @@ spec: [port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications) for details. - Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. @@ -28438,7 +28814,6 @@ spec: * By internal TCP/UDP load balancers, backend service-based network load balancers, internal protocol forwarding and when protocol is not L3_DEFAULT. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. Only packets addressed to these ports will be forwarded to the backends configured with this @@ -28529,37 +28904,21 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeSubnetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeSubnetwork` resource. type: string type: object target: - description: |- - The target resource to receive the matched traffic. The forwarded - traffic must be of a type appropriate to the target object. For - INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets + description: The target resource to receive the matched traffic. The + forwarded traffic must be of a type appropriate to the target object. + For INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets are valid. - oneOf: - - required: - - serviceAttachmentRef - - required: - - targetGRPCProxyRef - - required: - - targetHTTPProxyRef - - required: - - targetHTTPSProxyRef - - required: - - targetSSLProxyRef - - required: - - targetTCPProxyRef - - required: - - targetVPNGatewayRef properties: serviceAttachmentRef: oneOf: @@ -28578,14 +28937,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeServiceAttachment` - resource.' + description: The ComputeServiceAttachment selflink in the + form "projects/{{project}}/regions/{{region}}/serviceAttachments/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeServiceAttachment` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeServiceAttachment` + resource. type: string type: object targetGRPCProxyRef: @@ -28605,14 +28967,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetGRPCProxy` - resource.' + description: The ComputeTargetGrpcProxy selflink in the form + "projects/{{project}}/global/targetGrpcProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetGrpcProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetGrpcProxy` + resource. type: string type: object targetHTTPProxyRef: @@ -28632,14 +28997,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPProxy` - resource.' + description: The ComputeTargetHTTPProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPProxy` + resource. type: string type: object targetHTTPSProxyRef: @@ -28659,14 +29028,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetHTTPSProxy` - resource.' + description: The ComputeTargetHTTPSProxy selflink in the form + "projects/{{project}}/global/targetHttpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetHTTPSProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetHTTPSProxy` + resource. type: string type: object targetSSLProxyRef: @@ -28686,14 +29059,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetSSLProxy` - resource.' + description: The ComputeTargetSSLProxy selflink in the form + "projects/{{project}}/global/targetSslProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetSSLProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetSSLProxy` + resource. type: string type: object targetTCPProxyRef: @@ -28713,14 +29089,18 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetTCPProxy` - resource.' + description: The ComputeTargetTCPProxy selflink in the form + "projects/{{project}}/global/targetTcpProxies/{{name}}" + or "projects/{{project}}/regions/{{region}}/targetTcpProxies/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetTCPProxy` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetTCPProxy` + resource. type: string type: object targetVPNGatewayRef: @@ -28740,14 +29120,17 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `ComputeTargetVPNGateway` - resource.' + description: The ComputeTargetVPNGateway selflink in the form + "projects/{{project}}/regions/{{region}}/targetVpnGateways/{{name}}" + when not managed by KCC. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeTargetVPNGateway` + resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeTargetVPNGateway` + resource. type: string type: object type: object @@ -28764,8 +29147,8 @@ spec: if the current Forwarding Rule does not have sourceIPRanges specified.' type: string conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the object's current state. items: properties: lastTransitionTime: @@ -28792,9 +29175,12 @@ spec: creationTimestamp: description: Creation timestamp in RFC3339 text format. type: string + externalRef: + description: A unique Config Connector specifier for the resource + in GCP. + type: string labelFingerprint: - description: |- - The fingerprint used for optimistic locking of this resource. Used + description: The fingerprint used for optimistic locking of this resource. Used internally during updates. type: string observedGeneration: @@ -28803,6 +29189,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer pscConnectionId: description: The PSC connection id of the PSC Forwarding Rule. @@ -28821,25 +29208,17 @@ spec: This field is only used for INTERNAL load balancing. type: string type: object - required: - - spec type: object served: true storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29001,7 +29380,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29159,7 +29538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29623,7 +30002,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29784,7 +30163,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -29945,7 +30324,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -30303,7 +30682,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -31082,7 +31461,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -31264,7 +31643,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -31467,7 +31846,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -32500,7 +32879,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -33532,7 +33911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -33857,7 +34236,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34074,11 +34453,11 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha + cnrm.cloud.google.com/stability-level: stable cnrm.cloud.google.com/system: "true" cnrm.cloud.google.com/tf2crd: "true" name: computemanagedsslcertificates.compute.cnrm.cloud.google.com @@ -34112,7 +34491,7 @@ spec: jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime name: Status Age type: date - name: v1alpha1 + name: v1beta1 schema: openAPIV3Schema: properties: @@ -34190,9 +34569,6 @@ spec: type: object status: properties: - certificateId: - description: The unique identifier for the resource. - type: integer conditions: description: Conditions represent the latest available observation of the resource's current state. @@ -34219,12 +34595,6 @@ spec: type: string type: object type: array - creationTimestamp: - description: Creation timestamp in RFC3339 text format. - type: string - expireTime: - description: Expire time of the certificate in RFC3339 text format. - type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -34232,265 +34602,434 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer - selfLink: - type: string - subjectAlternativeNames: - description: Domains associated with the certificate via Subject Alternative - Name. - items: - type: string - type: array - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.119.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: stable - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: computenetworkendpointgroups.compute.cnrm.cloud.google.com -spec: - group: compute.cnrm.cloud.google.com - names: - categories: - - gcp - kind: ComputeNetworkEndpointGroup - plural: computenetworkendpointgroups - shortNames: - - gcpcomputenetworkendpointgroup - - gcpcomputenetworkendpointgroups - singular: computenetworkendpointgroup - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - defaultPort: - description: |- - Immutable. The default port used if the port number is not specified in the - network endpoint. - type: integer - description: - description: |- - Immutable. An optional description of this resource. Provide this property when - you create the resource. - type: string - location: - description: 'Location represents the geographical location of the - ComputeNetworkEndpointGroup. Specify a zone name. Reference: GCP - definition of regions/zones (https://cloud.google.com/compute/docs/regions-zones/)' - type: string - networkEndpointType: - description: |- - Immutable. Type of network endpoints in this network endpoint group. - NON_GCP_PRIVATE_IP_PORT is used for hybrid connectivity network - endpoint groups (see https://cloud.google.com/load-balancing/docs/hybrid). - Note that NON_GCP_PRIVATE_IP_PORT can only be used with Backend Services - that 1) have the following load balancing schemes: EXTERNAL, EXTERNAL_MANAGED, - INTERNAL_MANAGED, and INTERNAL_SELF_MANAGED and 2) support the RATE or - CONNECTION balancing modes. - - Possible values include: GCE_VM_IP, GCE_VM_IP_PORT, and NON_GCP_PRIVATE_IP_PORT. Default value: "GCE_VM_IP_PORT" Possible values: ["GCE_VM_IP", "GCE_VM_IP_PORT", "NON_GCP_PRIVATE_IP_PORT"]. - type: string - networkRef: - description: |- - The network to which all network endpoints in the NEG belong. Uses - "default" project network if unspecified. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - resourceID: - description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. - type: string - subnetworkRef: - description: Optional subnetwork to which all network endpoints in - the NEG belong. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external + observedState: + description: The observed state of the underlying GCP resource. properties: - external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' + certificateID: + description: The unique identifier for the resource. + type: integer + creationTimestamp: + description: Creation timestamp in RFC3339 text format. type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + expireTime: + description: Expire time of the certificate in RFC3339 text format. type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + selfLink: type: string - type: object - required: - - location - - networkRef - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. + subjectAlternativeNames: + description: Domains associated with the certificate via Subject + Alternative Name. + items: type: string - type: object - type: array - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - selfLink: - type: string - size: - description: Number of network endpoints in the network endpoint group. - type: integer + type: array + type: object type: object required: - spec type: object served: true - storage: true + storage: false subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.119.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: computenetworkendpoints.compute.cnrm.cloud.google.com -spec: - group: compute.cnrm.cloud.google.com - names: - categories: - - gcp - kind: ComputeNetworkEndpoint - plural: computenetworkendpoints - shortNames: - - gcpcomputenetworkendpoint - - gcpcomputenetworkendpoints - singular: computenetworkendpoint - preserveUnknownFields: false - scope: Namespaced - versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + description: + description: Immutable. An optional description of this resource. + type: string + managed: + description: |- + Immutable. Properties relevant to a managed certificate. These will be used if the + certificate is managed (as indicated by a value of 'MANAGED' in 'type'). + properties: + domains: + description: |- + Immutable. Domains for which a managed SSL certificate will be valid. Currently, + there can be up to 100 domains in this list. + items: + type: string + type: array + required: + - domains + type: object + projectRef: + description: The project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `Project` resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The name of the resource. Used for + creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + type: + description: |- + Immutable. Enum field whose value is always 'MANAGED' - used to signal to the API + which type this is. Default value: "MANAGED" Possible values: ["MANAGED"]. + type: string + required: + - projectRef + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + certificateID: + description: The unique identifier for the resource. + type: integer + creationTimestamp: + description: Creation timestamp in RFC3339 text format. + type: string + expireTime: + description: Expire time of the certificate in RFC3339 text format. + type: string + selfLink: + type: string + subjectAlternativeNames: + description: Domains associated with the certificate via Subject + Alternative Name. + items: + type: string + type: array + type: object + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: stable + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: computenetworkendpointgroups.compute.cnrm.cloud.google.com +spec: + group: compute.cnrm.cloud.google.com + names: + categories: + - gcp + kind: ComputeNetworkEndpointGroup + plural: computenetworkendpointgroups + shortNames: + - gcpcomputenetworkendpointgroup + - gcpcomputenetworkendpointgroups + singular: computenetworkendpointgroup + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + defaultPort: + description: |- + Immutable. The default port used if the port number is not specified in the + network endpoint. + type: integer + description: + description: |- + Immutable. An optional description of this resource. Provide this property when + you create the resource. + type: string + location: + description: 'Location represents the geographical location of the + ComputeNetworkEndpointGroup. Specify a zone name. Reference: GCP + definition of regions/zones (https://cloud.google.com/compute/docs/regions-zones/)' + type: string + networkEndpointType: + description: |- + Immutable. Type of network endpoints in this network endpoint group. + NON_GCP_PRIVATE_IP_PORT is used for hybrid connectivity network + endpoint groups (see https://cloud.google.com/load-balancing/docs/hybrid). + Note that NON_GCP_PRIVATE_IP_PORT can only be used with Backend Services + that 1) have the following load balancing schemes: EXTERNAL, EXTERNAL_MANAGED, + INTERNAL_MANAGED, and INTERNAL_SELF_MANAGED and 2) support the RATE or + CONNECTION balancing modes. + + Possible values include: GCE_VM_IP, GCE_VM_IP_PORT, and NON_GCP_PRIVATE_IP_PORT. Default value: "GCE_VM_IP_PORT" Possible values: ["GCE_VM_IP", "GCE_VM_IP_PORT", "NON_GCP_PRIVATE_IP_PORT"]. + type: string + networkRef: + description: |- + The network to which all network endpoints in the NEG belong. Uses + "default" project network if unspecified. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` + resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The name of the resource. Used for + creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + subnetworkRef: + description: Optional subnetwork to which all network endpoints in + the NEG belong. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` + resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + required: + - location + - networkRef + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + selfLink: + type: string + size: + description: Number of network endpoints in the network endpoint group. + type: integer + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: alpha + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: computenetworkendpoints.compute.cnrm.cloud.google.com +spec: + group: compute.cnrm.cloud.google.com + names: + categories: + - gcp + kind: ComputeNetworkEndpoint + plural: computenetworkendpoints + shortNames: + - gcpcomputenetworkendpoint + - gcpcomputenetworkendpoints + singular: computenetworkendpoint + preserveUnknownFields: false + scope: Namespaced + versions: - additionalPrinterColumns: - jsonPath: .metadata.creationTimestamp name: Age @@ -34681,7 +35220,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -34852,7 +35391,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35058,7 +35597,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35446,7 +35985,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35627,7 +36166,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -35827,7 +36366,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36001,7 +36540,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36291,7 +36830,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36472,7 +37011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36617,7 +37156,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36746,7 +37285,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -36972,7 +37511,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -37372,7 +37911,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37669,7 +38208,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -37787,7 +38326,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38220,7 +38759,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38397,7 +38936,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38699,7 +39238,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -38996,7 +39535,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39192,7 +39731,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39406,7 +39945,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -39730,7 +40269,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40022,7 +40561,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40479,7 +41018,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -40835,7 +41374,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41062,7 +41601,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41341,7 +41880,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -41962,7 +42501,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -42309,7 +42848,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42415,7 +42954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42559,7 +43098,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -42958,7 +43497,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43176,7 +43715,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43339,7 +43878,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43633,7 +44172,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43811,7 +44350,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -43990,7 +44529,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44068,7 +44607,7 @@ spec: - external properties: external: - description: 'Allowed value: string of the format `projects/{{project}}/locations/{{location}}/certificates/{{value}}`, + description: 'Allowed value: string of the format `projects/{{project}}/locations/global/certificates/{{value}}`, where {{value}} is the `name` field of a `CertificateManagerCertificate` resource.' type: string @@ -44084,7 +44623,10 @@ spec: description: |- A reference to the CertificateMap resource uri that identifies a certificate map associated with the given target proxy. This field - can only be set for global target proxies. + can only be set for global target proxies. This field is only supported + for EXTERNAL and EXTERNAL_MANAGED load balancing schemes. + For INTERNAL_MANAGED, use certificateManagerCertificates instead. + sslCertificates and certificateMap fields can not be defined together. oneOf: - not: required: @@ -44101,7 +44643,7 @@ spec: - external properties: external: - description: 'Allowed value: string of the format `//certificatemanager.googleapis.com/projects/{{project}}/locations/{{location}}/certificateMaps/{{value}}`, + description: 'Allowed value: string of the format `//certificatemanager.googleapis.com/projects/{{project}}/locations/global/certificateMaps/{{value}}`, where {{value}} is the `name` field of a `CertificateManagerCertificateMap` resource.' type: string @@ -44345,7 +44887,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44570,7 +45112,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -44825,7 +45367,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45084,7 +45626,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45251,7 +45793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -45412,7 +45954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48135,7 +48677,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48339,7 +48881,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -48711,7 +49253,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -49027,7 +49569,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -49616,7 +50158,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -49852,7 +50394,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -50203,7 +50745,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -51579,18 +52121,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect @@ -52027,6 +52568,23 @@ spec: description: Base64 encoded public certificate used by clients to authenticate to the cluster endpoint. type: string + clusterCaCertificate: + description: Base64 encoded public certificate that is the + root of trust for the cluster. + type: string + type: object + privateClusterConfig: + description: Configuration for private clusters, clusters with + private nodes. + properties: + privateEndpoint: + description: The internal IP address of this cluster's master + endpoint. + type: string + publicEndpoint: + description: The external IP address of this cluster's master + endpoint. + type: string type: object type: object operation: @@ -52062,7 +52620,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -52766,18 +53324,17 @@ spec: type: string type: array taint: - description: Immutable. List of Kubernetes taints to be applied - to each node. + description: List of Kubernetes taints to be applied to each node. items: properties: effect: - description: Immutable. Effect for taint. + description: Effect for taint. type: string key: - description: Immutable. Key for taint. + description: Key for taint. type: string value: - description: Immutable. Value for taint. + description: Value for taint. type: string required: - effect @@ -52987,7 +53544,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53259,7 +53816,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53425,7 +53982,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53621,7 +54178,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -53806,7 +54363,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54038,7 +54595,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54212,7 +54769,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -54226,6 +54783,7 @@ spec: categories: - gcp kind: DataflowFlexTemplateJob + listKind: DataflowFlexTemplateJobList plural: dataflowflextemplatejobs shortNames: - gcpdataflowflextemplatejob @@ -54234,6 +54792,320 @@ spec: preserveUnknownFields: false scope: Namespaced versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: DataflowFlexTemplateJob is the Schema for the DataflowFlexTemplateJob + API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: DataflowFlexTemplateJobSpec defines the desired state of + DataflowFlexTemplateJob + properties: + additionalExperiments: + description: Additional experiment flags for the job. + items: + type: string + type: array + autoscalingAlgorithm: + description: The algorithm to use for autoscaling + type: string + containerSpecGcsPath: + description: Cloud Storage path to a file with json serialized ContainerSpec + as content. + type: string + enableStreamingEngine: + description: Whether to enable Streaming Engine for the job. + type: boolean + ipConfiguration: + description: Configuration for VM IPs. + type: string + kmsKeyNameRef: + description: The Cloud KMS key for the job. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. + type: string + name: + description: The `name` of a `KMSCryptoKey` resource. + type: string + namespace: + description: The `namespace` of a `KMSCryptoKey` resource. + type: string + type: object + launcherMachineType: + description: The machine type to use for launching the job. The default + is n1-standard-1. + type: string + machineType: + description: The machine type to use for the job. Defaults to the + value from the template if not specified. + type: string + maxWorkers: + description: The maximum number of Google Compute Engine instances + to be made available to your pipeline during execution, from 1 to + 1000. + format: int32 + type: integer + networkRef: + description: Network to which VMs will be assigned. If empty or unspecified, + the service will use the network "default". + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. + type: string + name: + description: The `name` field of a `ComputeNetwork` resource. + type: string + namespace: + description: The `namespace` field of a `ComputeNetwork` resource. + type: string + type: object + numWorkers: + description: The initial number of Google Compute Engine instances + for the job. + format: int32 + type: integer + parameters: + description: The parameters for FlexTemplate. Ex. {"num_workers":"5"} + type: object + x-kubernetes-preserve-unknown-fields: true + region: + description: Immutable. The region in which the created job should + run. + type: string + sdkContainerImage: + description: Docker registry location of container image to use for + the 'worker harness. Default is the container for the version of + the SDK. Note this field is only valid for portable pipelines. + type: string + serviceAccountEmailRef: + description: The email address of the service account to run the job + as. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `email` field of an `IAMServiceAccount` resource. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + stagingLocation: + description: The Cloud Storage path for staging local files. Must + be a valid Cloud Storage URL, beginning with `gs://`. + type: string + subnetworkRef: + description: Subnetwork to which VMs will be assigned, if desired. + You can specify a subnetwork using either a complete URL or an abbreviated + path. Expected to be of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" + or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is + located in a Shared VPC network, you must use the complete URL. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. + type: string + name: + description: The `name` field of a `ComputeSubnetwork` resource. + type: string + namespace: + description: The `namespace` field of a `ComputeSubnetwork` resource. + type: string + type: object + tempLocation: + description: The Cloud Storage path to use for temporary files. Must + be a valid Cloud Storage URL, beginning with `gs://`. + type: string + transformNameMapping: + description: Map of transform name prefixes of the job to be replaced + with the corresponding name prefixes of the new job. Only applicable + when updating a pipeline. + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - containerSpecGcsPath + type: object + status: + description: DataflowFlexTemplateJobStatus defines the config connector + machine state of DataflowFlexTemplateJob + properties: + conditions: + description: Conditions represent the latest available observations + of the object's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + jobId: + type: string + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + format: int64 + type: integer + state: + description: |- + The current state of the job. + + Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise + specified. + + A job in the `JOB_STATE_RUNNING` state may asynchronously enter a + terminal state. After a job has reached a terminal state, no + further state updates may be made. + + This field may be mutated by the Cloud Dataflow service; + callers cannot mutate it. + type: string + type: + description: The type of Cloud Dataflow job. + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: stable + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: dataflowjobs.dataflow.cnrm.cloud.google.com +spec: + group: dataflow.cnrm.cloud.google.com + names: + categories: + - gcp + kind: DataflowJob + plural: dataflowjobs + shortNames: + - gcpdataflowjob + - gcpdataflowjobs + singular: dataflowjob + preserveUnknownFields: false + scope: Namespaced + versions: - additionalPrinterColumns: - jsonPath: .metadata.creationTimestamp name: Age @@ -54274,305 +55146,15 @@ spec: items: type: string type: array - autoscalingAlgorithm: - description: The algorithm to use for autoscaling. - type: string - containerSpecGcsPath: - type: string enableStreamingEngine: - description: Immutable. Indicates if the job should use the streaming - engine feature. + description: Indicates if the job should use the streaming engine + feature. type: boolean ipConfiguration: description: The configuration for VM IPs. Options are "WORKER_IP_PUBLIC" or "WORKER_IP_PRIVATE". type: string - kmsKeyNameRef: - description: The name for the Cloud KMS key for the job. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - launcherMachineType: - description: The machine type to use for launching the job. The default - is n1-standard-1. - type: string - machineType: - description: The machine type to use for the job. - type: string - maxWorkers: - description: Immutable. The maximum number of Google Compute Engine - instances to be made available to your pipeline during execution, - from 1 to 1000. - type: integer - networkRef: - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `selfLink` field of a `ComputeNetwork` - resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - numWorkers: - description: Immutable. The initial number of Google Compute Engine - instances for the job. - type: integer - parameters: - type: object - x-kubernetes-preserve-unknown-fields: true - region: - description: Immutable. The region in which the created job should - run. - type: string - sdkContainerImage: - description: Docker registry location of container image to use for - the 'worker harness. Default is the container for the version of - the SDK. Note this field is only valid for portable pipelines. - type: string - serviceAccountEmailRef: - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `email` field of an `IAMServiceAccount` - resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - stagingLocation: - description: The Cloud Storage path to use for staging files. Must - be a valid Cloud Storage URL, beginning with gs://. - type: string - subnetworkRef: - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `selfLink` field of a `ComputeSubnetwork` - resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - tempLocation: - description: The Cloud Storage path to use for temporary files. Must - be a valid Cloud Storage URL, beginning with gs://. - type: string - transformNameMapping: - description: Only applicable when updating a pipeline. Map of transform - name prefixes of the job to be replaced with the corresponding name - prefixes of the new job. - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - containerSpecGcsPath - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - jobId: - type: string - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - state: - type: string - type: - description: The type of this job, selected from the JobType enum. - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.119.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: stable - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: dataflowjobs.dataflow.cnrm.cloud.google.com -spec: - group: dataflow.cnrm.cloud.google.com - names: - categories: - - gcp - kind: DataflowJob - plural: dataflowjobs - shortNames: - - gcpdataflowjob - - gcpdataflowjobs - singular: dataflowjob - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - additionalExperiments: - description: List of experiments that should be used by the job. An - example value is ["enable_stackdriver_agent_metrics"]. - items: - type: string - type: array - enableStreamingEngine: - description: Indicates if the job should use the streaming engine - feature. - type: boolean - ipConfiguration: - description: The configuration for VM IPs. Options are "WORKER_IP_PUBLIC" - or "WORKER_IP_PRIVATE". - type: string - kmsKeyRef: + kmsKeyRef: description: The name for the Cloud KMS key for the job. oneOf: - not: @@ -54788,13 +55370,12 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" cnrm.cloud.google.com/stability-level: alpha cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" name: dataformrepositories.dataform.cnrm.cloud.google.com spec: group: dataform.cnrm.cloud.google.com @@ -54802,6 +55383,7 @@ spec: categories: - gcp kind: DataformRepository + listKind: DataformRepositoryList plural: dataformrepositories shortNames: - gcpdataformrepository @@ -54829,44 +55411,143 @@ spec: name: v1alpha1 schema: openAPIV3Schema: + description: DataformRepository is the Schema for the dataform API properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: - description: 'kind is a string value representing the REST resource this + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: properties: + displayName: + description: Optional. The repository's user-friendly name. + type: string gitRemoteSettings: description: Optional. If set, configures this repository to be linked to a Git remote. properties: - authenticationTokenSecretVersion: + authenticationTokenSecretVersionRef: description: The name of the Secret Manager secret version to use as an authentication token for Git operations. Must be in - the format projects/*/secrets/*/versions/*. - type: string + the format projects/* /secrets/* /versions/*. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object defaultBranch: description: The Git remote's default branch name. type: string - tokenStatus: - description: Indicates the status of the Git access token. https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories#TokenStatus. - type: string + sshAuthenticationConfig: + description: Authentication fields for remote uris using SSH protocol. + properties: + hostPublicKey: + description: Content of a public SSH key to verify an identity + of a remote Git host. + type: string + userPrivateKeySecretVersionRef: + description: The name of the Secret Manager secret version + to use as a ssh private key for Git operations. Must be + in the format projects/*/secrets/*/versions/* . + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object + required: + - hostPublicKey + - userPrivateKeySecretVersionRef + type: object url: description: The Git remote's URL. type: string required: - - authenticationTokenSecretVersion - defaultBranch - url type: object + npmrcEnvironmentVariablesSecretVersionRef: + description: Optional. The name of the Secret Manager secret version + to be used to interpolate variables into the .npmrc file for package + installation operations. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: ' If provided must be in the format `projects/*/secrets/*/versions/*`.' + type: string + name: + description: The `name` field of a `SecretManagerSecretVersion` + resource. + type: string + namespace: + description: The `metadata.namespace` field of a `SecretManagerSecretVersion` + resource. + type: string + type: object projectRef: description: The project that this resource belongs to. oneOf: @@ -54885,13 +55566,18 @@ spec: - external properties: external: - description: 'Allowed value: The `name` field of a `Project` resource.' + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `Project` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `Project` resource. type: string type: object region: @@ -54902,6 +55588,39 @@ spec: creation and acquisition. When unset, the value of `metadata.name` is used as the default. type: string + serviceAccountRef: + description: Optional. The service account reference to run workflow + invocations under. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `email` field of an `IAMServiceAccount` resource. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + setAuthenticatedUserAdmin: + description: Optional. Input only. If set to true, the authenticated + user will be granted the roles/dataform.admin role on the created + repository. + type: boolean workspaceCompilationOverrides: description: Optional. If set, fields of workspaceCompilationOverrides override the default compilation settings that are specified in @@ -54927,8 +55646,8 @@ spec: status: properties: conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the DataformRepository's current state. items: properties: lastTransitionTime: @@ -54952,13 +55671,22 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the DataformReposity resource + in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer + observedState: + description: ObservedState is the state of the resource as most recently + observed in GCP. + type: object type: object required: - spec @@ -54967,18 +55695,12 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -55257,7 +55979,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -55552,7 +56274,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -57367,7 +58089,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -59309,7 +60031,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -59481,7 +60203,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60082,7 +60804,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -60275,7 +60997,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61209,7 +61931,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61424,7 +62146,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61609,7 +62331,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -61823,7 +62545,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62018,7 +62740,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62568,7 +63290,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -62788,7 +63510,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -63886,7 +64608,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64095,7 +64817,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64289,7 +65011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64486,7 +65208,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -64723,7 +65445,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -68899,7 +69621,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -69511,7 +70233,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -70987,7 +71709,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -71358,7 +72080,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -71743,7 +72465,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -71939,7 +72661,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -72911,7 +73633,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73090,7 +73812,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73286,7 +74008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73409,7 +74131,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -73574,7 +74296,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74110,7 +74832,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74361,7 +75083,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74600,7 +75322,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -74780,7 +75502,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75004,7 +75726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -75146,7 +75868,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -75692,7 +76414,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -75914,7 +76636,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -76243,7 +76965,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -76412,7 +77134,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -76599,7 +77321,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -76776,7 +77498,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -76920,7 +77642,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77083,7 +77805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77235,7 +77957,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77383,7 +78105,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77530,7 +78252,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77684,7 +78406,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -77897,7 +78619,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -78194,7 +78916,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -78285,10 +79007,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -78382,10 +79102,8 @@ spec: - external properties: external: - description: 'The GCP Service Account Email used for - auth when secretType is gcpServiceAccount. Allowed - value: The `email` field of an `IAMServiceAccount` - resource.' + description: The `email` field of an `IAMServiceAccount` + resource. type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' @@ -78425,7 +79143,9 @@ spec: type: string type: object hierarchyController: - description: Hierarchy Controller configuration for the cluster. + description: 'Hierarchy Controller is no longer available. + Use https://github.com/kubernetes-sigs/hierarchical-namespaces + instead.' properties: enableHierarchicalResourceQuota: description: Whether hierarchical resource quota is enabled @@ -78440,7 +79160,9 @@ spec: type: boolean type: object policyController: - description: Policy Controller configuration for the cluster. + description: '**DEPRECATED** Configuring Policy Controller through + the configmanagement feature is no longer recommended. Use the + policycontroller feature instead.' properties: auditIntervalSeconds: description: Sets the interval for Policy Controller Audit @@ -78735,7 +79457,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -79001,7 +79723,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -79366,7 +80088,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -79499,7 +80221,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -79657,7 +80379,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -79819,7 +80541,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80133,7 +80855,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80334,7 +81056,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80535,7 +81257,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80696,7 +81418,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -80836,7 +81558,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81161,7 +81883,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81389,7 +82111,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81629,7 +82351,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81808,7 +82530,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -81950,7 +82672,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -82308,7 +83030,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -82489,7 +83211,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -82785,7 +83507,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -82952,7 +83674,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83078,7 +83800,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83232,7 +83954,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -83924,7 +84646,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84083,7 +84805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84288,7 +85010,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -84471,7 +85193,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84695,7 +85417,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -84859,7 +85581,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85072,7 +85794,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85289,7 +86011,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -85442,7 +86164,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85635,7 +86357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -85824,7 +86546,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86004,7 +86726,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -86018,6 +86740,7 @@ spec: categories: - gcp kind: KMSKeyRing + listKind: KMSKeyRingList plural: kmskeyrings shortNames: - gcpkmskeyring @@ -86026,6 +86749,333 @@ spec: preserveUnknownFields: false scope: Namespaced versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: KMSKeyRing represents a KMS KeyRing. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + location: + description: Immutable. The location for the KeyRing. A full list + of valid locations can be found by running 'gcloud kms locations + list'. + type: string + resourceID: + description: Immutable. Optional. The name of the resource. Used for + creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + required: + - location + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observations + of the KMSKeyRing's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + format: int64 + type: integer + selfLink: + description: The self link of the created KeyRing in the format projects/{project}/locations/{location}/keyRings/{name}. + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: alpha + cnrm.cloud.google.com/system: "true" + cnrm.cloud.google.com/tf2crd: "true" + name: kmssecretciphertexts.kms.cnrm.cloud.google.com +spec: + group: kms.cnrm.cloud.google.com + names: + categories: + - gcp + kind: KMSSecretCiphertext + plural: kmssecretciphertexts + shortNames: + - gcpkmssecretciphertext + - gcpkmssecretciphertexts + singular: kmssecretciphertext + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + description: 'apiVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' + type: string + kind: + description: 'kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + additionalAuthenticatedData: + description: Immutable. The additional authenticated data used for + integrity checks during encryption and decryption. + oneOf: + - not: + required: + - valueFrom + required: + - value + - not: + required: + - value + required: + - valueFrom + properties: + value: + description: Value of the field. Cannot be used if 'valueFrom' + is specified. + type: string + valueFrom: + description: Source for the field's value. Cannot be used if 'value' + is specified. + properties: + secretKeyRef: + description: Reference to a value with the given key in the + given Secret in the resource's namespace. + properties: + key: + description: Key that identifies the value to be extracted. + type: string + name: + description: Name of the Secret to extract a value from. + type: string + required: + - name + - key + type: object + type: object + type: object + cryptoKey: + description: |- + Immutable. The full name of the CryptoKey that will be used to encrypt the provided plaintext. + Format: ''projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}/cryptoKeys/{{cryptoKey}}''. + type: string + plaintext: + description: Immutable. The plaintext to be encrypted. + oneOf: + - not: + required: + - valueFrom + required: + - value + - not: + required: + - value + required: + - valueFrom + properties: + value: + description: Value of the field. Cannot be used if 'valueFrom' + is specified. + type: string + valueFrom: + description: Source for the field's value. Cannot be used if 'value' + is specified. + properties: + secretKeyRef: + description: Reference to a value with the given key in the + given Secret in the resource's namespace. + properties: + key: + description: Key that identifies the value to be extracted. + type: string + name: + description: Name of the Secret to extract a value from. + type: string + required: + - name + - key + type: object + type: object + type: object + resourceID: + description: Immutable. Optional. The service-generated ciphertext + of the resource. Used for acquisition only. Leave unset to create + a new resource. + type: string + required: + - cryptoKey + - plaintext + type: object + status: + properties: + ciphertext: + description: Contains the result of encrypting the provided plaintext, + encoded in base64. + type: string + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/dcl2crd: "true" + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: stable + cnrm.cloud.google.com/system: "true" + name: logginglogbuckets.logging.cnrm.cloud.google.com +spec: + group: logging.cnrm.cloud.google.com + names: + categories: + - gcp + kind: LoggingLogBucket + plural: logginglogbuckets + shortNames: + - gcplogginglogbucket + - gcplogginglogbuckets + singular: logginglogbucket + preserveUnknownFields: false + scope: Namespaced + versions: - additionalPrinterColumns: - jsonPath: .metadata.creationTimestamp name: Age @@ -86047,337 +87097,6 @@ spec: openAPIV3Schema: properties: apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - location: - description: |- - Immutable. The location for the KeyRing. - A full list of valid locations can be found by running 'gcloud kms locations list'. - type: string - resourceID: - description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. - type: string - required: - - location - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - selfLink: - description: The self link of the created KeyRing in the format projects/{project}/locations/{location}/keyRings/{name}. - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.119.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: alpha - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: kmssecretciphertexts.kms.cnrm.cloud.google.com -spec: - group: kms.cnrm.cloud.google.com - names: - categories: - - gcp - kind: KMSSecretCiphertext - plural: kmssecretciphertexts - shortNames: - - gcpkmssecretciphertext - - gcpkmssecretciphertexts - singular: kmssecretciphertext - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: - additionalAuthenticatedData: - description: Immutable. The additional authenticated data used for - integrity checks during encryption and decryption. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom - properties: - value: - description: Value of the field. Cannot be used if 'valueFrom' - is specified. - type: string - valueFrom: - description: Source for the field's value. Cannot be used if 'value' - is specified. - properties: - secretKeyRef: - description: Reference to a value with the given key in the - given Secret in the resource's namespace. - properties: - key: - description: Key that identifies the value to be extracted. - type: string - name: - description: Name of the Secret to extract a value from. - type: string - required: - - name - - key - type: object - type: object - type: object - cryptoKey: - description: |- - Immutable. The full name of the CryptoKey that will be used to encrypt the provided plaintext. - Format: ''projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}/cryptoKeys/{{cryptoKey}}''. - type: string - plaintext: - description: Immutable. The plaintext to be encrypted. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom - properties: - value: - description: Value of the field. Cannot be used if 'valueFrom' - is specified. - type: string - valueFrom: - description: Source for the field's value. Cannot be used if 'value' - is specified. - properties: - secretKeyRef: - description: Reference to a value with the given key in the - given Secret in the resource's namespace. - properties: - key: - description: Key that identifies the value to be extracted. - type: string - name: - description: Name of the Secret to extract a value from. - type: string - required: - - name - - key - type: object - type: object - type: object - resourceID: - description: Immutable. Optional. The service-generated ciphertext - of the resource. Used for acquisition only. Leave unset to create - a new resource. - type: string - required: - - cryptoKey - - plaintext - type: object - status: - properties: - ciphertext: - description: Contains the result of encrypting the provided plaintext, - encoded in base64. - type: string - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.119.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/dcl2crd: "true" - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: stable - cnrm.cloud.google.com/system: "true" - name: logginglogbuckets.logging.cnrm.cloud.google.com -spec: - group: logging.cnrm.cloud.google.com - names: - categories: - - gcp - kind: LoggingLogBucket - plural: logginglogbuckets - shortNames: - - gcplogginglogbucket - - gcplogginglogbuckets - singular: logginglogbucket - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - properties: - apiVersion: description: 'apiVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' @@ -86624,7 +87343,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -86899,7 +87618,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -87355,7 +88074,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -87759,7 +88478,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -88063,7 +88782,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -88400,7 +89119,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -88576,7 +89295,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -89431,9 +90150,8 @@ spec: severity: description: |- The severity of an alert policy indicates how important - incidents generated by that policy are. The severity level - will be displayed on the Incident detail page and in notifications. - Possible values: ["CRITICAL", "ERROR", "WARNING"]. + incidents generated by that policy are. The severity level will be displayed on + the Incident detail page and in notifications. Possible values: ["CRITICAL", "ERROR", "WARNING"]. type: string required: - combiner @@ -89514,10 +90232,9 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: - cnrm.cloud.google.com/dcl2crd: "true" cnrm.cloud.google.com/managed-by-kcc: "true" cnrm.cloud.google.com/stability-level: stable cnrm.cloud.google.com/system: "true" @@ -89583,9 +90300,7 @@ spec: weight: description: The relative weight of this column. The column weight is used to adjust the width of columns on the screen - (relative to peers). Greater the weight, greater the width - of the column on the screen. If omitted, a value of 1 - is used while rendering. + (relative to peers). format: int64 type: integer widgets: @@ -89593,23 +90308,195 @@ spec: this column. items: properties: + alertChart: + description: A chart of alert policy data. + properties: + alertPolicyRef: + description: Required. A reference to the MonitoringAlertPolicy. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The MonitoringAlertPolicy link + in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", + when not managed by KCC. + type: string + name: + description: The `name` field of a `MonitoringAlertPolicy` + resource. + type: string + namespace: + description: The `namespace` field of a `MonitoringAlertPolicy` + resource. + type: string + type: object + required: + - alertPolicyRef + type: object blank: description: A blank space. type: object + collapsibleGroup: + description: A widget that groups the other widgets. + All widgets that are within the area spanned by + the grouping widget are considered member widgets. + properties: + collapsed: + description: The collapsed state of the widget + on first page load. + type: boolean + type: object + errorReportingPanel: + description: A widget that displays a list of error + groups. + properties: + projectRefs: + description: The projects from which to gather + errors. + items: + description: The Project that this resource + belongs to. + oneOf: + - not: + required: + - external + required: + - name + - kind + - not: + anyOf: + - required: + - name + - required: + - namespace + - required: + - kind + required: + - external + properties: + external: + description: The `projectID` field of a + project, when not managed by KCC. + type: string + kind: + description: The kind of the Project resource; + optional but must be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` + resource. + type: string + namespace: + description: The `namespace` field of a + `Project` resource. + type: string + type: object + type: array + services: + description: An identifier of the service, such + as the name of the executable, job, or Google + App Engine service name. This field is expected + to have a low number of values that are relatively + stable over time, as opposed to `version`, which + can be changed whenever new code is deployed. + items: + type: string + type: array + versions: + description: Represents the source code version + that the developer provided, which could represent + a version label or a Git SHA-1 hash, for example. + For App Engine standard environment, the version + is set to the version of the app. + items: + type: string + type: array + type: object + id: + description: Optional. The widget id. Ids may be made + up of alphanumerics, dashes and underscores. Widget + ids are optional. + type: string + incidentList: + description: A widget that shows list of incidents. + properties: + monitoredResources: + description: Optional. The monitored resource + for which incidents are listed. + items: + properties: + labels: + additionalProperties: + type: string + description: Required. Values for all of + the labels listed in the associated monitored + resource descriptor. + type: object + type: + description: Required. The monitored resource + type. This field must match the `type` + field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] + object. + type: string + type: object + type: array + policyRefs: + description: Optional. A list of alert policies + to filter the incident list by. + items: + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The MonitoringAlertPolicy link + in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", + when not managed by KCC. + type: string + name: + description: The `name` field of a `MonitoringAlertPolicy` + resource. + type: string + namespace: + description: The `namespace` field of a + `MonitoringAlertPolicy` resource. + type: string + type: object + type: array + type: object logsPanel: description: A widget that shows a stream of logs. properties: filter: description: A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). - Only log entries that match the filter are returned. An - empty filter matches all log entries. type: string resourceNames: description: The names of logging resources to - collect logs for. Currently only projects are - supported. If empty, the widget will default - to the host project. + collect logs for. items: oneOf: - not: @@ -89647,9 +90534,418 @@ spec: type: object type: array type: object + pieChart: + description: A widget that displays timeseries data + as a pie chart. + properties: + chartType: + description: Required. Indicates the visualization + type for the PieChart. + type: string + dataSets: + description: Required. The queries for the chart's + data. + items: + properties: + minAlignmentPeriod: + description: Optional. The lower bound on + data point frequency for this data set. + type: string + sliceNameTemplate: + description: Optional. A template for the + name of the slice. + type: string + timeSeriesQuery: + description: Required. The query for the + PieChart. See, `google.monitoring.dashboard.v1.TimeSeriesQuery`. + properties: + outputFullDuration: + description: Optional. If set, Cloud + Monitoring will treat the full query + duration as the alignment period so + that there will be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string + timeSeriesFilter: + description: Filter parameters to fetch + time series. + properties: + aggregation: + description: By default, the raw + time series data is returned. + Use this field to combine multiple + time series for different views + of the data. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + filter: + description: Required. The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + pickTimeSeriesFilter: + description: Ranking based time + series filter. + properties: + direction: + description: How to use the + ranking to select time series + that pass through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to + other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after `aggregation` is applied. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + required: + - filter + type: object + timeSeriesFilterRatio: + description: Parameters to fetch a ratio + between two time series filters. + properties: + denominator: + description: The denominator of + the ratio. + properties: + aggregation: + description: By default, the + raw time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. + type: string + groupByFields: + description: The set of + fields to preserve when + `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. + type: string + type: object + filter: + description: The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric + types, resources, and projects + to query. + type: string + required: + - filter + type: object + numerator: + description: The numerator of the + ratio. + properties: + aggregation: + description: By default, the + raw time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. + type: string + groupByFields: + description: The set of + fields to preserve when + `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. + type: string + type: object + filter: + description: The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric + types, resources, and projects + to query. + type: string + required: + - filter + type: object + pickTimeSeriesFilter: + description: Ranking based time + series filter. + properties: + direction: + description: How to use the + ranking to select time series + that pass through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to + other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after the ratio is computed. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + type: object + timeSeriesQueryLanguage: + description: A query used to fetch time + series with MQL. + type: string + unitOverride: + description: The unit of data contained + in fetched time series. If non-empty, + this unit will override any unit that + accompanies fetched data. The format + is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + field in `MetricDescriptor`. + type: string + type: object + required: + - timeSeriesQuery + type: object + type: array + showLabels: + description: Optional. Indicates whether or not + the pie chart should show slices' labels + type: boolean + required: + - chartType + - dataSets + type: object scorecard: description: A scorecard summarizing time series data. properties: + blankView: + description: Will cause the `Scorecard` to show + only the value, with no indicator to its value + relative to its thresholds. + type: object gaugeView: description: Will cause the scorecard to show a gauge chart. @@ -89675,11 +90971,7 @@ spec: description: The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a - time series query. For example, if the data - is published once every 10 minutes it would - not make sense to fetch and align data at - one minute intervals. This field is optional - and exists only as a hint. + time series query. type: string sparkChartType: description: Required. The type of sparkchart @@ -89689,48 +90981,9 @@ spec: - sparkChartType type: object thresholds: - description: |- - The thresholds used to determine the state of the scorecard given the - time series' current value. For an actual value x, the scorecard is in a - danger state if x is less than or equal to a danger threshold that triggers - below, or greater than or equal to a danger threshold that triggers above. - Similarly, if x is above/below a warning threshold that triggers - above/below, then the scorecard is in a warning state - unless x also puts - it in a danger state. (Danger trumps warning.) - - - As an example, consider a scorecard with the following four thresholds: - - - ``` - { - value: 90, - category: 'DANGER', - trigger: 'ABOVE', - }, - { - value: 70, - category: 'WARNING', - trigger: 'ABOVE', - }, - { - value: 10, - category: 'DANGER', - trigger: 'BELOW', - }, - { - value: 20, - category: 'WARNING', - trigger: 'BELOW', - } - ``` - - - Then: values less than or equal to 10 would put the scorecard in a DANGER - state, values greater than 10 but less than or equal to 20 a WARNING state, - values strictly between 20 and 70 an OK state, values greater than or equal - to 70 but less than 90 a WARNING state, and values greater than or equal to - 90 a DANGER state. + description: The thresholds used to determine + the state of the scorecard given the time series' + current value. items: properties: color: @@ -89745,6 +90998,11 @@ spec: label: description: A label for the threshold. type: string + targetAxis: + description: The target axis to use for + plotting the threshold. Target axis is + not allowed in a Scorecard. + type: string value: description: The value of the threshold. The value should be defined in the native @@ -89757,6 +91015,16 @@ spec: description: Required. Fields for querying time series data from the Stackdriver metrics API. properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as the + alignment period so that there will be only + 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time series + with PromQL. + type: string timeSeriesFilter: description: Filter parameters to fetch time series. @@ -89768,89 +91036,42 @@ spec: different views of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object filter: @@ -89886,89 +91107,42 @@ spec: after `aggregation` is applied. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object required: @@ -89983,101 +91157,52 @@ spec: properties: aggregation: description: By default, the raw time - series data is returned. Use this - field to combine multiple time series - for different views of the data. + series data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -90089,101 +91214,52 @@ spec: properties: aggregation: description: By default, the raw time - series data is returned. Use this - field to combine multiple time series - for different views of the data. + series data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -90217,89 +91293,42 @@ spec: after the ratio is computed. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object type: object @@ -90319,6 +91348,22 @@ spec: required: - timeSeriesQuery type: object + sectionHeader: + description: A widget that defines a section header + for easier navigation of the dashboard. + properties: + dividerBelow: + description: Whether to insert a divider below + the section in the table of contents + type: boolean + subtitle: + description: The subtitle of the section + type: string + type: object + singleViewGroup: + description: A widget that groups the other widgets + by using a dropdown menu. + type: object text: description: A raw string or markdown displaying textual content. @@ -90329,52 +91374,101 @@ spec: format: description: How the text content is formatted. type: string - type: object - title: - description: Optional. The title of the widget. - type: string - xyChart: - description: A chart of time series data. - properties: - chartOptions: - description: Display options for the chart. + style: + description: How the text is styled properties: - mode: - description: The chart mode. + backgroundColor: + description: The background color as a hex + string. "#RRGGBB" or "#RGB" + type: string + fontSize: + description: Font sizes for both the title + and content. The title will still be larger + relative to the content. + type: string + horizontalAlignment: + description: The horizontal alignment of both + the title and content + type: string + padding: + description: The amount of padding around + the widget + type: string + pointerLocation: + description: The pointer location for this + widget (also sometimes called a "tail") + type: string + textColor: + description: The text color as a hex string. + "#RRGGBB" or "#RGB" + type: string + verticalAlignment: + description: The vertical alignment of both + the title and content type: string type: object + type: object + timeSeriesTable: + description: A widget that displays time series data + in a tabular format. + properties: + columnSettings: + description: Optional. The list of the persistent + column settings for the table. + items: + properties: + column: + description: Required. The id of the column. + type: string + visible: + description: Required. Whether the column + should be visible on page load. + type: boolean + required: + - column + - visible + type: object + type: array dataSets: description: Required. The data displayed in this - chart. + table. items: properties: - legendTemplate: - description: A template string for naming - `TimeSeries` in the resulting data set. - This should be a string with interpolations - of the form `${label_name}`, which will - resolve to the label's value. - type: string minAlignmentPeriod: description: Optional. The lower bound on - data point frequency for this data set, - implemented by specifying the minimum - alignment period to use in a time series - query For example, if the data is published - once every 10 minutes, the `min_alignment_period` - should be at least 10 minutes. It would - not make sense to fetch and align data - at one minute intervals. + data point frequency for this data set. type: string - plotType: - description: How this data should be plotted - on the chart. + tableDisplayOptions: + description: Optional. Table display options + for configuring how the table is rendered. + properties: + shownColumns: + description: Optional. This field is + unused and has been replaced by TimeSeriesTable.column_settings + items: + type: string + type: array + type: object + tableTemplate: + description: Optional. A template string + for naming `TimeSeries` in the resulting + data set. type: string timeSeriesQuery: description: Required. Fields for querying time series data from the Stackdriver metrics API. properties: + outputFullDuration: + description: Optional. If set, Cloud + Monitoring will treat the full query + duration as the alignment period so + that there will be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string timeSeriesFilter: description: Filter parameters to fetch time series. @@ -90387,93 +91481,46 @@ spec: of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the - same value for each of the - grouping fields. Each individual - time series is a member of - exactly one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is not - possible to reduce across - different resource types, - so this field implicitly contains - `resource.type`. Fields not - specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same - resource type, then the time - series are aggregated into - a single output time series. - If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. type: string type: object filter: @@ -90511,93 +91558,46 @@ spec: after `aggregation` is applied. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the - same value for each of the - grouping fields. Each individual - time series is a member of - exactly one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is not - possible to reduce across - different resource types, - so this field implicitly contains - `resource.type`. Fields not - specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same - resource type, then the time - series are aggregated into - a single output time series. - If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. type: string type: object required: @@ -90614,106 +91614,58 @@ spec: aggregation: description: By default, the raw time series data is returned. - Use this field to combine - multiple time series for different - views of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time - series are partitioned - into subsets prior to - applying the aggregation - operation. Each subset - contains time series that - have the same value for - each of the grouping fields. - Each individual time series - is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is - not possible to reduce - across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If - `group_by_fields` is not - specified and all the - time series have the same - resource type, then the - time series are aggregated - into a single output time - series. If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. type: string type: object filter: - description: Required. The [monitoring + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects @@ -90729,106 +91681,58 @@ spec: aggregation: description: By default, the raw time series data is returned. - Use this field to combine - multiple time series for different - views of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time - series are partitioned - into subsets prior to - applying the aggregation - operation. Each subset - contains time series that - have the same value for - each of the grouping fields. - Each individual time series - is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is - not possible to reduce - across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If - `group_by_fields` is not - specified and all the - time series have the same - resource type, then the - time series are aggregated - into a single output time - series. If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. type: string type: object filter: - description: Required. The [monitoring + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects @@ -90866,93 +91770,46 @@ spec: after the ratio is computed. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the - same value for each of the - grouping fields. Each individual - time series is a member of - exactly one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is not - possible to reduce across - different resource types, - so this field implicitly contains - `resource.type`. Fields not - specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same - resource type, then the time - series are aggregated into - a single output time series. - If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. type: string type: object type: object @@ -90969,7 +91826,420 @@ spec: field in `MetricDescriptor`. type: string type: object - required: + type: object + type: array + metricVisualization: + description: Optional. Store rendering strategy + type: string + required: + - dataSets + type: object + title: + description: Optional. The title of the widget. + type: string + xyChart: + description: A chart of time series data. + properties: + chartOptions: + description: Display options for the chart. + properties: + mode: + description: The chart mode. + type: string + type: object + dataSets: + description: Required. The data displayed in this + chart. + items: + properties: + legendTemplate: + description: A template string for naming + `TimeSeries` in the resulting data set. + type: string + minAlignmentPeriod: + description: Optional. The lower bound on + data point frequency for this data set. + type: string + plotType: + description: How this data should be plotted + on the chart. + type: string + targetAxis: + description: Optional. The target axis to + use for plotting the metric. + type: string + timeSeriesQuery: + description: Fields for querying time series + data from the Stackdriver metrics API. + properties: + outputFullDuration: + description: Optional. If set, Cloud + Monitoring will treat the full query + duration as the alignment period so + that there will be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string + timeSeriesFilter: + description: Filter parameters to fetch + time series. + properties: + aggregation: + description: By default, the raw + time series data is returned. + Use this field to combine multiple + time series for different views + of the data. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + filter: + description: Required. The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + pickTimeSeriesFilter: + description: Ranking based time + series filter. + properties: + direction: + description: How to use the + ranking to select time series + that pass through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to + other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after `aggregation` is applied. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + required: + - filter + type: object + timeSeriesFilterRatio: + description: Parameters to fetch a ratio + between two time series filters. + properties: + denominator: + description: The denominator of + the ratio. + properties: + aggregation: + description: By default, the + raw time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. + type: string + groupByFields: + description: The set of + fields to preserve when + `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. + type: string + type: object + filter: + description: The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric + types, resources, and projects + to query. + type: string + required: + - filter + type: object + numerator: + description: The numerator of the + ratio. + properties: + aggregation: + description: By default, the + raw time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. + type: string + groupByFields: + description: The set of + fields to preserve when + `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. + type: string + type: object + filter: + description: The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric + types, resources, and projects + to query. + type: string + required: + - filter + type: object + pickTimeSeriesFilter: + description: Ranking based time + series filter. + properties: + direction: + description: How to use the + ranking to select time series + that pass through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to + other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after the ratio is computed. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + type: object + timeSeriesQueryLanguage: + description: A query used to fetch time + series with MQL. + type: string + unitOverride: + description: The unit of data contained + in fetched time series. If non-empty, + this unit will override any unit that + accompanies fetched data. The format + is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + field in `MetricDescriptor`. + type: string + type: object + required: - timeSeriesQuery type: object type: array @@ -90990,6 +92260,11 @@ spec: label: description: A label for the threshold. type: string + targetAxis: + description: The target axis to use for + plotting the threshold. Target axis is + not allowed in a Scorecard. + type: string value: description: The value of the threshold. The value should be defined in the native @@ -91000,11 +92275,7 @@ spec: type: array timeshiftDuration: description: The duration used to display a comparison - chart. A comparison chart simultaneously shows - values from two similar-length time periods - (e.g., week-over-week metrics). The duration - must be positive, and it can only be applied - to charts with data sets of LINE plot type. + chart. type: string xAxis: description: The properties applied to the x-axis. @@ -91017,6 +92288,17 @@ spec: linear scale is used. type: string type: object + y2Axis: + description: The properties applied to the y2-axis. + properties: + label: + description: The label of the axis. + type: string + scale: + description: The axis scale. By default, a + linear scale is used. + type: string + type: object yAxis: description: The properties applied to the y-axis. properties: @@ -91036,6 +92318,29 @@ spec: type: object type: array type: object + dashboardFilters: + description: Filters to reduce the amount of data charted based on + the filter criteria. + items: + properties: + filterType: + description: The specified filter type + type: string + labelKey: + description: Required. The key for the label + type: string + stringValue: + description: A variable-length string value. + type: string + templateVariable: + description: The placeholder text that can be referenced in + a filter string or MQL query. If omitted, the dashboard filter + will be applied to all relevant widgets in the dashboard. + type: string + required: + - labelKey + type: object + type: array displayName: description: Required. The mutable, human-readable name. type: string @@ -91054,22 +92359,192 @@ spec: the columns row-first. items: properties: + alertChart: + description: A chart of alert policy data. + properties: + alertPolicyRef: + description: Required. A reference to the MonitoringAlertPolicy. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The MonitoringAlertPolicy link in the + form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", + when not managed by KCC. + type: string + name: + description: The `name` field of a `MonitoringAlertPolicy` + resource. + type: string + namespace: + description: The `namespace` field of a `MonitoringAlertPolicy` + resource. + type: string + type: object + required: + - alertPolicyRef + type: object blank: description: A blank space. type: object + collapsibleGroup: + description: A widget that groups the other widgets. All + widgets that are within the area spanned by the grouping + widget are considered member widgets. + properties: + collapsed: + description: The collapsed state of the widget on first + page load. + type: boolean + type: object + errorReportingPanel: + description: A widget that displays a list of error groups. + properties: + projectRefs: + description: The projects from which to gather errors. + items: + description: The Project that this resource belongs + to. + oneOf: + - not: + required: + - external + required: + - name + - kind + - not: + anyOf: + - required: + - name + - required: + - namespace + - required: + - kind + required: + - external + properties: + external: + description: The `projectID` field of a project, + when not managed by KCC. + type: string + kind: + description: The kind of the Project resource; + optional but must be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` + resource. + type: string + type: object + type: array + services: + description: An identifier of the service, such as the + name of the executable, job, or Google App Engine + service name. This field is expected to have a low + number of values that are relatively stable over time, + as opposed to `version`, which can be changed whenever + new code is deployed. + items: + type: string + type: array + versions: + description: Represents the source code version that + the developer provided, which could represent a version + label or a Git SHA-1 hash, for example. For App Engine + standard environment, the version is set to the version + of the app. + items: + type: string + type: array + type: object + id: + description: Optional. The widget id. Ids may be made up + of alphanumerics, dashes and underscores. Widget ids are + optional. + type: string + incidentList: + description: A widget that shows list of incidents. + properties: + monitoredResources: + description: Optional. The monitored resource for which + incidents are listed. + items: + properties: + labels: + additionalProperties: + type: string + description: Required. Values for all of the labels + listed in the associated monitored resource + descriptor. + type: object + type: + description: Required. The monitored resource + type. This field must match the `type` field + of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] + object. + type: string + type: object + type: array + policyRefs: + description: Optional. A list of alert policies to filter + the incident list by. + items: + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The MonitoringAlertPolicy link in + the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", + when not managed by KCC. + type: string + name: + description: The `name` field of a `MonitoringAlertPolicy` + resource. + type: string + namespace: + description: The `namespace` field of a `MonitoringAlertPolicy` + resource. + type: string + type: object + type: array + type: object logsPanel: description: A widget that shows a stream of logs. properties: filter: description: A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). - Only log entries that match the filter are returned. An - empty filter matches all log entries. type: string resourceNames: description: The names of logging resources to collect - logs for. Currently only projects are supported. If - empty, the widget will default to the host project. + logs for. items: oneOf: - not: @@ -91107,9 +92582,380 @@ spec: type: object type: array type: object + pieChart: + description: A widget that displays timeseries data as a + pie chart. + properties: + chartType: + description: Required. Indicates the visualization type + for the PieChart. + type: string + dataSets: + description: Required. The queries for the chart's data. + items: + properties: + minAlignmentPeriod: + description: Optional. The lower bound on data + point frequency for this data set. + type: string + sliceNameTemplate: + description: Optional. A template for the name + of the slice. + type: string + timeSeriesQuery: + description: Required. The query for the PieChart. + See, `google.monitoring.dashboard.v1.TimeSeriesQuery`. + properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as the + alignment period so that there will be only + 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time series + with PromQL. + type: string + timeSeriesFilter: + description: Filter parameters to fetch time + series. + properties: + aggregation: + description: By default, the raw time + series data is returned. Use this field + to combine multiple time series for + different views of the data. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields to + preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. + type: string + type: object + filter: + description: Required. The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, resources, + and projects to query. + type: string + pickTimeSeriesFilter: + description: Ranking based time series + filter. + properties: + direction: + description: How to use the ranking + to select time series that pass + through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` is + applied to each time series independently + to produce the value which will + be used to compare the time series + to other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after `aggregation` is applied. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields to + preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. + type: string + type: object + required: + - filter + type: object + timeSeriesFilterRatio: + description: Parameters to fetch a ratio between + two time series filters. + properties: + denominator: + description: The denominator of the ratio. + properties: + aggregation: + description: By default, the raw time + series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + filter: + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + required: + - filter + type: object + numerator: + description: The numerator of the ratio. + properties: + aggregation: + description: By default, the raw time + series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + filter: + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + required: + - filter + type: object + pickTimeSeriesFilter: + description: Ranking based time series + filter. + properties: + direction: + description: How to use the ranking + to select time series that pass + through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` is + applied to each time series independently + to produce the value which will + be used to compare the time series + to other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after the ratio is computed. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields to + preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. + type: string + type: object + type: object + timeSeriesQueryLanguage: + description: A query used to fetch time series + with MQL. + type: string + unitOverride: + description: The unit of data contained in + fetched time series. If non-empty, this + unit will override any unit that accompanies + fetched data. The format is the same as + the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + field in `MetricDescriptor`. + type: string + type: object + required: + - timeSeriesQuery + type: object + type: array + showLabels: + description: Optional. Indicates whether or not the + pie chart should show slices' labels + type: boolean + required: + - chartType + - dataSets + type: object scorecard: description: A scorecard summarizing time series data. properties: + blankView: + description: Will cause the `Scorecard` to show only + the value, with no indicator to its value relative + to its thresholds. + type: object gaugeView: description: Will cause the scorecard to show a gauge chart. @@ -91135,10 +92981,6 @@ spec: description: The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a time series query. - For example, if the data is published once every - 10 minutes it would not make sense to fetch and - align data at one minute intervals. This field - is optional and exists only as a hint. type: string sparkChartType: description: Required. The type of sparkchart to @@ -91148,48 +92990,8 @@ spec: - sparkChartType type: object thresholds: - description: |- - The thresholds used to determine the state of the scorecard given the - time series' current value. For an actual value x, the scorecard is in a - danger state if x is less than or equal to a danger threshold that triggers - below, or greater than or equal to a danger threshold that triggers above. - Similarly, if x is above/below a warning threshold that triggers - above/below, then the scorecard is in a warning state - unless x also puts - it in a danger state. (Danger trumps warning.) - - - As an example, consider a scorecard with the following four thresholds: - - - ``` - { - value: 90, - category: 'DANGER', - trigger: 'ABOVE', - }, - { - value: 70, - category: 'WARNING', - trigger: 'ABOVE', - }, - { - value: 10, - category: 'DANGER', - trigger: 'BELOW', - }, - { - value: 20, - category: 'WARNING', - trigger: 'BELOW', - } - ``` - - - Then: values less than or equal to 10 would put the scorecard in a DANGER - state, values greater than 10 but less than or equal to 20 a WARNING state, - values strictly between 20 and 70 an OK state, values greater than or equal - to 70 but less than 90 a WARNING state, and values greater than or equal to - 90 a DANGER state. + description: The thresholds used to determine the state + of the scorecard given the time series' current value. items: properties: color: @@ -91203,6 +93005,11 @@ spec: label: description: A label for the threshold. type: string + targetAxis: + description: The target axis to use for plotting + the threshold. Target axis is not allowed in + a Scorecard. + type: string value: description: The value of the threshold. The value should be defined in the native scale of the @@ -91215,6 +93022,15 @@ spec: description: Required. Fields for querying time series data from the Stackdriver metrics API. properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as the alignment + period so that there will be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time series with + PromQL. + type: string timeSeriesFilter: description: Filter parameters to fetch time series. properties: @@ -91225,85 +93041,37 @@ spec: the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` specifies + a time interval, in seconds, that is used + to divide the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. This will + be done before the per-series aligner + can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation to + be used to combine time series into a + single time series, where the value of + each data point in the resulting series + is a function of all the already aligned + values in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` is specified. - The `group_by_fields` determine how the - time series are partitioned into subsets - prior to applying the aggregation operation. - Each subset contains time series that - have the same value for each of the grouping - fields. Each individual time series is - a member of exactly one subset. The `cross_series_reducer` - is applied to each subset of time series. - It is not possible to reduce across different - resource types, so this field implicitly - contains `resource.type`. Fields not - specified in `group_by_fields` are aggregated - away. If `group_by_fields` is not specified - and all the time series have the same - resource type, then the time series are - aggregated into a single output time series. - If `cross_series_reducer` is not defined, - this field is ignored. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes how + to bring the data points in a single time + series into temporal alignment. Except + for `ALIGN_NONE`, all alignments cause + all the data points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point for each + `alignment_period` with end timestamp + at the end of the period. type: string type: object filter: @@ -91335,85 +93103,37 @@ spec: `aggregation` is applied. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` specifies + a time interval, in seconds, that is used + to divide the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. This will + be done before the per-series aligner + can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation to + be used to combine time series into a + single time series, where the value of + each data point in the resulting series + is a function of all the already aligned + values in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` is specified. - The `group_by_fields` determine how the - time series are partitioned into subsets - prior to applying the aggregation operation. - Each subset contains time series that - have the same value for each of the grouping - fields. Each individual time series is - a member of exactly one subset. The `cross_series_reducer` - is applied to each subset of time series. - It is not possible to reduce across different - resource types, so this field implicitly - contains `resource.type`. Fields not - specified in `group_by_fields` are aggregated - away. If `group_by_fields` is not specified - and all the time series have the same - resource type, then the time series are - aggregated into a single output time series. - If `cross_series_reducer` is not defined, - this field is ignored. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes how + to bring the data points in a single time + series into temporal alignment. Except + for `ALIGN_NONE`, all alignments cause + all the data points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point for each + `alignment_period` with end timestamp + at the end of the period. type: string type: object required: @@ -91428,96 +93148,45 @@ spec: properties: aggregation: description: By default, the raw time series - data is returned. Use this field to combine - multiple time series for different views - of the data. + data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. This + will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where the + value of each data point in the resulting + series is a function of all the already + aligned values in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` is specified. - The `group_by_fields` determine how - the time series are partitioned into - subsets prior to applying the aggregation - operation. Each subset contains time - series that have the same value for - each of the grouping fields. Each - individual time series is a member - of exactly one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, so - this field implicitly contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the time - series have the same resource type, - then the time series are aggregated - into a single output time series. - If `cross_series_reducer` is not defined, - this field is ignored. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in a + single time series into temporal alignment. + Except for `ALIGN_NONE`, all alignments + cause all the data points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point for + each `alignment_period` with end timestamp + at the end of the period. type: string type: object filter: - description: Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -91529,96 +93198,45 @@ spec: properties: aggregation: description: By default, the raw time series - data is returned. Use this field to combine - multiple time series for different views - of the data. + data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. This + will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where the + value of each data point in the resulting + series is a function of all the already + aligned values in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` is specified. - The `group_by_fields` determine how - the time series are partitioned into - subsets prior to applying the aggregation - operation. Each subset contains time - series that have the same value for - each of the grouping fields. Each - individual time series is a member - of exactly one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, so - this field implicitly contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the time - series have the same resource type, - then the time series are aggregated - into a single output time series. - If `cross_series_reducer` is not defined, - this field is ignored. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in a + single time series into temporal alignment. + Except for `ALIGN_NONE`, all alignments + cause all the data points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point for + each `alignment_period` with end timestamp + at the end of the period. type: string type: object filter: - description: Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -91649,85 +93267,37 @@ spec: the ratio is computed. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` specifies + a time interval, in seconds, that is used + to divide the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. This will + be done before the per-series aligner + can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation to + be used to combine time series into a + single time series, where the value of + each data point in the resulting series + is a function of all the already aligned + values in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` is specified. - The `group_by_fields` determine how the - time series are partitioned into subsets - prior to applying the aggregation operation. - Each subset contains time series that - have the same value for each of the grouping - fields. Each individual time series is - a member of exactly one subset. The `cross_series_reducer` - is applied to each subset of time series. - It is not possible to reduce across different - resource types, so this field implicitly - contains `resource.type`. Fields not - specified in `group_by_fields` are aggregated - away. If `group_by_fields` is not specified - and all the time series have the same - resource type, then the time series are - aggregated into a single output time series. - If `cross_series_reducer` is not defined, - this field is ignored. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes how + to bring the data points in a single time + series into temporal alignment. Except + for `ALIGN_NONE`, all alignments cause + all the data points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point for each + `alignment_period` with end timestamp + at the end of the period. type: string type: object type: object @@ -91746,6 +93316,22 @@ spec: required: - timeSeriesQuery type: object + sectionHeader: + description: A widget that defines a section header for + easier navigation of the dashboard. + properties: + dividerBelow: + description: Whether to insert a divider below the section + in the table of contents + type: boolean + subtitle: + description: The subtitle of the section + type: string + type: object + singleViewGroup: + description: A widget that groups the other widgets by using + a dropdown menu. + type: object text: description: A raw string or markdown displaying textual content. @@ -91756,6 +93342,424 @@ spec: format: description: How the text content is formatted. type: string + style: + description: How the text is styled + properties: + backgroundColor: + description: The background color as a hex string. + "#RRGGBB" or "#RGB" + type: string + fontSize: + description: Font sizes for both the title and content. + The title will still be larger relative to the + content. + type: string + horizontalAlignment: + description: The horizontal alignment of both the + title and content + type: string + padding: + description: The amount of padding around the widget + type: string + pointerLocation: + description: The pointer location for this widget + (also sometimes called a "tail") + type: string + textColor: + description: The text color as a hex string. "#RRGGBB" + or "#RGB" + type: string + verticalAlignment: + description: The vertical alignment of both the + title and content + type: string + type: object + type: object + timeSeriesTable: + description: A widget that displays time series data in + a tabular format. + properties: + columnSettings: + description: Optional. The list of the persistent column + settings for the table. + items: + properties: + column: + description: Required. The id of the column. + type: string + visible: + description: Required. Whether the column should + be visible on page load. + type: boolean + required: + - column + - visible + type: object + type: array + dataSets: + description: Required. The data displayed in this table. + items: + properties: + minAlignmentPeriod: + description: Optional. The lower bound on data + point frequency for this data set. + type: string + tableDisplayOptions: + description: Optional. Table display options for + configuring how the table is rendered. + properties: + shownColumns: + description: Optional. This field is unused + and has been replaced by TimeSeriesTable.column_settings + items: + type: string + type: array + type: object + tableTemplate: + description: Optional. A template string for naming + `TimeSeries` in the resulting data set. + type: string + timeSeriesQuery: + description: Required. Fields for querying time + series data from the Stackdriver metrics API. + properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as the + alignment period so that there will be only + 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time series + with PromQL. + type: string + timeSeriesFilter: + description: Filter parameters to fetch time + series. + properties: + aggregation: + description: By default, the raw time + series data is returned. Use this field + to combine multiple time series for + different views of the data. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields to + preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. + type: string + type: object + filter: + description: Required. The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, resources, + and projects to query. + type: string + pickTimeSeriesFilter: + description: Ranking based time series + filter. + properties: + direction: + description: How to use the ranking + to select time series that pass + through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` is + applied to each time series independently + to produce the value which will + be used to compare the time series + to other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after `aggregation` is applied. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields to + preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. + type: string + type: object + required: + - filter + type: object + timeSeriesFilterRatio: + description: Parameters to fetch a ratio between + two time series filters. + properties: + denominator: + description: The denominator of the ratio. + properties: + aggregation: + description: By default, the raw time + series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + filter: + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + required: + - filter + type: object + numerator: + description: The numerator of the ratio. + properties: + aggregation: + description: By default, the raw time + series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + filter: + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + required: + - filter + type: object + pickTimeSeriesFilter: + description: Ranking based time series + filter. + properties: + direction: + description: How to use the ranking + to select time series that pass + through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` is + applied to each time series independently + to produce the value which will + be used to compare the time series + to other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after the ratio is computed. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields to + preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. + type: string + type: object + type: object + timeSeriesQueryLanguage: + description: A query used to fetch time series + with MQL. + type: string + unitOverride: + description: The unit of data contained in + fetched time series. If non-empty, this + unit will override any unit that accompanies + fetched data. The format is the same as + the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + field in `MetricDescriptor`. + type: string + type: object + type: object + type: array + metricVisualization: + description: Optional. Store rendering strategy + type: string + required: + - dataSets type: object title: description: Optional. The title of the widget. @@ -91776,28 +93780,34 @@ spec: properties: legendTemplate: description: A template string for naming `TimeSeries` - in the resulting data set. This should be a - string with interpolations of the form `${label_name}`, - which will resolve to the label's value. + in the resulting data set. type: string minAlignmentPeriod: description: Optional. The lower bound on data - point frequency for this data set, implemented - by specifying the minimum alignment period to - use in a time series query For example, if the - data is published once every 10 minutes, the - `min_alignment_period` should be at least 10 - minutes. It would not make sense to fetch and - align data at one minute intervals. + point frequency for this data set. type: string plotType: description: How this data should be plotted on the chart. type: string + targetAxis: + description: Optional. The target axis to use + for plotting the metric. + type: string timeSeriesQuery: - description: Required. Fields for querying time - series data from the Stackdriver metrics API. + description: Fields for querying time series data + from the Stackdriver metrics API. properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as the + alignment period so that there will be only + 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time series + with PromQL. + type: string timeSeriesFilter: description: Filter parameters to fetch time series. @@ -91809,89 +93819,42 @@ spec: different views of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object filter: @@ -91927,89 +93890,42 @@ spec: after `aggregation` is applied. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object required: @@ -92024,101 +93940,52 @@ spec: properties: aggregation: description: By default, the raw time - series data is returned. Use this - field to combine multiple time series - for different views of the data. + series data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -92130,101 +93997,52 @@ spec: properties: aggregation: description: By default, the raw time - series data is returned. Use this - field to combine multiple time series - for different views of the data. + series data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -92258,89 +94076,42 @@ spec: after the ratio is computed. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object type: object @@ -92377,6 +94148,11 @@ spec: label: description: A label for the threshold. type: string + targetAxis: + description: The target axis to use for plotting + the threshold. Target axis is not allowed in + a Scorecard. + type: string value: description: The value of the threshold. The value should be defined in the native scale of the @@ -92387,11 +94163,7 @@ spec: type: array timeshiftDuration: description: The duration used to display a comparison - chart. A comparison chart simultaneously shows values - from two similar-length time periods (e.g., week-over-week - metrics). The duration must be positive, and it can - only be applied to charts with data sets of LINE plot - type. + chart. type: string xAxis: description: The properties applied to the x-axis. @@ -92404,6 +94176,17 @@ spec: scale is used. type: string type: object + y2Axis: + description: The properties applied to the y2-axis. + properties: + label: + description: The label of the axis. + type: string + scale: + description: The axis scale. By default, a linear + scale is used. + type: string + type: object yAxis: description: The properties applied to the y-axis. properties: @@ -92443,23 +94226,194 @@ spec: description: The informational widget contained in the tile. For example an `XyChart`. properties: + alertChart: + description: A chart of alert policy data. + properties: + alertPolicyRef: + description: Required. A reference to the MonitoringAlertPolicy. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The MonitoringAlertPolicy link + in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", + when not managed by KCC. + type: string + name: + description: The `name` field of a `MonitoringAlertPolicy` + resource. + type: string + namespace: + description: The `namespace` field of a `MonitoringAlertPolicy` + resource. + type: string + type: object + required: + - alertPolicyRef + type: object blank: description: A blank space. type: object + collapsibleGroup: + description: A widget that groups the other widgets. + All widgets that are within the area spanned by the + grouping widget are considered member widgets. + properties: + collapsed: + description: The collapsed state of the widget on + first page load. + type: boolean + type: object + errorReportingPanel: + description: A widget that displays a list of error + groups. + properties: + projectRefs: + description: The projects from which to gather errors. + items: + description: The Project that this resource belongs + to. + oneOf: + - not: + required: + - external + required: + - name + - kind + - not: + anyOf: + - required: + - name + - required: + - namespace + - required: + - kind + required: + - external + properties: + external: + description: The `projectID` field of a project, + when not managed by KCC. + type: string + kind: + description: The kind of the Project resource; + optional but must be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` + resource. + type: string + namespace: + description: The `namespace` field of a `Project` + resource. + type: string + type: object + type: array + services: + description: An identifier of the service, such + as the name of the executable, job, or Google + App Engine service name. This field is expected + to have a low number of values that are relatively + stable over time, as opposed to `version`, which + can be changed whenever new code is deployed. + items: + type: string + type: array + versions: + description: Represents the source code version + that the developer provided, which could represent + a version label or a Git SHA-1 hash, for example. + For App Engine standard environment, the version + is set to the version of the app. + items: + type: string + type: array + type: object + id: + description: Optional. The widget id. Ids may be made + up of alphanumerics, dashes and underscores. Widget + ids are optional. + type: string + incidentList: + description: A widget that shows list of incidents. + properties: + monitoredResources: + description: Optional. The monitored resource for + which incidents are listed. + items: + properties: + labels: + additionalProperties: + type: string + description: Required. Values for all of the + labels listed in the associated monitored + resource descriptor. + type: object + type: + description: Required. The monitored resource + type. This field must match the `type` field + of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] + object. + type: string + type: object + type: array + policyRefs: + description: Optional. A list of alert policies + to filter the incident list by. + items: + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The MonitoringAlertPolicy link + in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", + when not managed by KCC. + type: string + name: + description: The `name` field of a `MonitoringAlertPolicy` + resource. + type: string + namespace: + description: The `namespace` field of a `MonitoringAlertPolicy` + resource. + type: string + type: object + type: array + type: object logsPanel: description: A widget that shows a stream of logs. properties: filter: description: A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). - Only log entries that match the filter are returned. An - empty filter matches all log entries. type: string resourceNames: description: The names of logging resources to collect - logs for. Currently only projects are supported. - If empty, the widget will default to the host - project. + logs for. items: oneOf: - not: @@ -92497,9 +94451,402 @@ spec: type: object type: array type: object + pieChart: + description: A widget that displays timeseries data + as a pie chart. + properties: + chartType: + description: Required. Indicates the visualization + type for the PieChart. + type: string + dataSets: + description: Required. The queries for the chart's + data. + items: + properties: + minAlignmentPeriod: + description: Optional. The lower bound on + data point frequency for this data set. + type: string + sliceNameTemplate: + description: Optional. A template for the + name of the slice. + type: string + timeSeriesQuery: + description: Required. The query for the PieChart. + See, `google.monitoring.dashboard.v1.TimeSeriesQuery`. + properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as + the alignment period so that there will + be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string + timeSeriesFilter: + description: Filter parameters to fetch + time series. + properties: + aggregation: + description: By default, the raw time + series data is returned. Use this + field to combine multiple time series + for different views of the data. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + filter: + description: Required. The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + pickTimeSeriesFilter: + description: Ranking based time series + filter. + properties: + direction: + description: How to use the ranking + to select time series that pass + through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to other + time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after `aggregation` is applied. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + required: + - filter + type: object + timeSeriesFilterRatio: + description: Parameters to fetch a ratio + between two time series filters. + properties: + denominator: + description: The denominator of the + ratio. + properties: + aggregation: + description: By default, the raw + time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in all + the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done + before the per-series aligner + can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, where + the value of each data point + in the resulting series + is a function of all the + already aligned values in + the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring the + data points in a single + time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all + the data points in an `alignment_period` + to be mathematically grouped + together, resulting in a + single data point for each + `alignment_period` with + end timestamp at the end + of the period. + type: string + type: object + filter: + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + required: + - filter + type: object + numerator: + description: The numerator of the + ratio. + properties: + aggregation: + description: By default, the raw + time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in all + the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done + before the per-series aligner + can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, where + the value of each data point + in the resulting series + is a function of all the + already aligned values in + the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring the + data points in a single + time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all + the data points in an `alignment_period` + to be mathematically grouped + together, resulting in a + single data point for each + `alignment_period` with + end timestamp at the end + of the period. + type: string + type: object + filter: + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + required: + - filter + type: object + pickTimeSeriesFilter: + description: Ranking based time series + filter. + properties: + direction: + description: How to use the ranking + to select time series that pass + through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to other + time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after the ratio is computed. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + type: object + timeSeriesQueryLanguage: + description: A query used to fetch time + series with MQL. + type: string + unitOverride: + description: The unit of data contained + in fetched time series. If non-empty, + this unit will override any unit that + accompanies fetched data. The format + is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + field in `MetricDescriptor`. + type: string + type: object + required: + - timeSeriesQuery + type: object + type: array + showLabels: + description: Optional. Indicates whether or not + the pie chart should show slices' labels + type: boolean + required: + - chartType + - dataSets + type: object scorecard: description: A scorecard summarizing time series data. properties: + blankView: + description: Will cause the `Scorecard` to show + only the value, with no indicator to its value + relative to its thresholds. + type: object gaugeView: description: Will cause the scorecard to show a gauge chart. @@ -92525,11 +94872,7 @@ spec: description: The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a time - series query. For example, if the data is - published once every 10 minutes it would not - make sense to fetch and align data at one - minute intervals. This field is optional and - exists only as a hint. + series query. type: string sparkChartType: description: Required. The type of sparkchart @@ -92539,48 +94882,9 @@ spec: - sparkChartType type: object thresholds: - description: |- - The thresholds used to determine the state of the scorecard given the - time series' current value. For an actual value x, the scorecard is in a - danger state if x is less than or equal to a danger threshold that triggers - below, or greater than or equal to a danger threshold that triggers above. - Similarly, if x is above/below a warning threshold that triggers - above/below, then the scorecard is in a warning state - unless x also puts - it in a danger state. (Danger trumps warning.) - - - As an example, consider a scorecard with the following four thresholds: - - - ``` - { - value: 90, - category: 'DANGER', - trigger: 'ABOVE', - }, - { - value: 70, - category: 'WARNING', - trigger: 'ABOVE', - }, - { - value: 10, - category: 'DANGER', - trigger: 'BELOW', - }, - { - value: 20, - category: 'WARNING', - trigger: 'BELOW', - } - ``` - - - Then: values less than or equal to 10 would put the scorecard in a DANGER - state, values greater than 10 but less than or equal to 20 a WARNING state, - values strictly between 20 and 70 an OK state, values greater than or equal - to 70 but less than 90 a WARNING state, and values greater than or equal to - 90 a DANGER state. + description: The thresholds used to determine the + state of the scorecard given the time series' + current value. items: properties: color: @@ -92595,6 +94899,11 @@ spec: label: description: A label for the threshold. type: string + targetAxis: + description: The target axis to use for plotting + the threshold. Target axis is not allowed + in a Scorecard. + type: string value: description: The value of the threshold. The value should be defined in the native scale @@ -92607,6 +94916,16 @@ spec: description: Required. Fields for querying time series data from the Stackdriver metrics API. properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as the + alignment period so that there will be only + 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time series + with PromQL. + type: string timeSeriesFilter: description: Filter parameters to fetch time series. @@ -92618,87 +94937,38 @@ spec: of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. This + will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where the + value of each data point in the resulting + series is a function of all the already + aligned values in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` is specified. - The `group_by_fields` determine how - the time series are partitioned into - subsets prior to applying the aggregation - operation. Each subset contains time - series that have the same value for - each of the grouping fields. Each - individual time series is a member - of exactly one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, so - this field implicitly contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the time - series have the same resource type, - then the time series are aggregated - into a single output time series. - If `cross_series_reducer` is not defined, - this field is ignored. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in a + single time series into temporal alignment. + Except for `ALIGN_NONE`, all alignments + cause all the data points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point for + each `alignment_period` with end timestamp + at the end of the period. type: string type: object filter: @@ -92732,87 +95002,38 @@ spec: after `aggregation` is applied. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. This + will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where the + value of each data point in the resulting + series is a function of all the already + aligned values in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` is specified. - The `group_by_fields` determine how - the time series are partitioned into - subsets prior to applying the aggregation - operation. Each subset contains time - series that have the same value for - each of the grouping fields. Each - individual time series is a member - of exactly one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, so - this field implicitly contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the time - series have the same resource type, - then the time series are aggregated - into a single output time series. - If `cross_series_reducer` is not defined, - this field is ignored. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in a + single time series into temporal alignment. + Except for `ALIGN_NONE`, all alignments + cause all the data points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point for + each `alignment_period` with end timestamp + at the end of the period. type: string type: object required: @@ -92827,100 +95048,50 @@ spec: properties: aggregation: description: By default, the raw time - series data is returned. Use this - field to combine multiple time series - for different views of the data. + series data is returned. properties: - alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the + data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets prior - to applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to - reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the time - series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -92932,100 +95103,50 @@ spec: properties: aggregation: description: By default, the raw time - series data is returned. Use this - field to combine multiple time series - for different views of the data. + series data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the + data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets prior - to applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to - reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the time - series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -93058,87 +95179,38 @@ spec: after the ratio is computed. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. This + will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where the + value of each data point in the resulting + series is a function of all the already + aligned values in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` is specified. - The `group_by_fields` determine how - the time series are partitioned into - subsets prior to applying the aggregation - operation. Each subset contains time - series that have the same value for - each of the grouping fields. Each - individual time series is a member - of exactly one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, so - this field implicitly contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the time - series have the same resource type, - then the time series are aggregated - into a single output time series. - If `cross_series_reducer` is not defined, - this field is ignored. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in a + single time series into temporal alignment. + Except for `ALIGN_NONE`, all alignments + cause all the data points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point for + each `alignment_period` with end timestamp + at the end of the period. type: string type: object type: object @@ -93157,6 +95229,22 @@ spec: required: - timeSeriesQuery type: object + sectionHeader: + description: A widget that defines a section header + for easier navigation of the dashboard. + properties: + dividerBelow: + description: Whether to insert a divider below the + section in the table of contents + type: boolean + subtitle: + description: The subtitle of the section + type: string + type: object + singleViewGroup: + description: A widget that groups the other widgets + by using a dropdown menu. + type: object text: description: A raw string or markdown displaying textual content. @@ -93167,6 +95255,449 @@ spec: format: description: How the text content is formatted. type: string + style: + description: How the text is styled + properties: + backgroundColor: + description: The background color as a hex string. + "#RRGGBB" or "#RGB" + type: string + fontSize: + description: Font sizes for both the title and + content. The title will still be larger relative + to the content. + type: string + horizontalAlignment: + description: The horizontal alignment of both + the title and content + type: string + padding: + description: The amount of padding around the + widget + type: string + pointerLocation: + description: The pointer location for this widget + (also sometimes called a "tail") + type: string + textColor: + description: The text color as a hex string. + "#RRGGBB" or "#RGB" + type: string + verticalAlignment: + description: The vertical alignment of both + the title and content + type: string + type: object + type: object + timeSeriesTable: + description: A widget that displays time series data + in a tabular format. + properties: + columnSettings: + description: Optional. The list of the persistent + column settings for the table. + items: + properties: + column: + description: Required. The id of the column. + type: string + visible: + description: Required. Whether the column + should be visible on page load. + type: boolean + required: + - column + - visible + type: object + type: array + dataSets: + description: Required. The data displayed in this + table. + items: + properties: + minAlignmentPeriod: + description: Optional. The lower bound on + data point frequency for this data set. + type: string + tableDisplayOptions: + description: Optional. Table display options + for configuring how the table is rendered. + properties: + shownColumns: + description: Optional. This field is unused + and has been replaced by TimeSeriesTable.column_settings + items: + type: string + type: array + type: object + tableTemplate: + description: Optional. A template string for + naming `TimeSeries` in the resulting data + set. + type: string + timeSeriesQuery: + description: Required. Fields for querying + time series data from the Stackdriver metrics + API. + properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as + the alignment period so that there will + be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string + timeSeriesFilter: + description: Filter parameters to fetch + time series. + properties: + aggregation: + description: By default, the raw time + series data is returned. Use this + field to combine multiple time series + for different views of the data. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + filter: + description: Required. The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + pickTimeSeriesFilter: + description: Ranking based time series + filter. + properties: + direction: + description: How to use the ranking + to select time series that pass + through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to other + time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after `aggregation` is applied. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + required: + - filter + type: object + timeSeriesFilterRatio: + description: Parameters to fetch a ratio + between two time series filters. + properties: + denominator: + description: The denominator of the + ratio. + properties: + aggregation: + description: By default, the raw + time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in all + the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done + before the per-series aligner + can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, where + the value of each data point + in the resulting series + is a function of all the + already aligned values in + the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring the + data points in a single + time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all + the data points in an `alignment_period` + to be mathematically grouped + together, resulting in a + single data point for each + `alignment_period` with + end timestamp at the end + of the period. + type: string + type: object + filter: + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + required: + - filter + type: object + numerator: + description: The numerator of the + ratio. + properties: + aggregation: + description: By default, the raw + time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in all + the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done + before the per-series aligner + can be applied to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, where + the value of each data point + in the resulting series + is a function of all the + already aligned values in + the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring the + data points in a single + time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all + the data points in an `alignment_period` + to be mathematically grouped + together, resulting in a + single data point for each + `alignment_period` with + end timestamp at the end + of the period. + type: string + type: object + filter: + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + required: + - filter + type: object + pickTimeSeriesFilter: + description: Ranking based time series + filter. + properties: + direction: + description: How to use the ranking + to select time series that pass + through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to other + time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after the ratio is computed. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. + type: string + type: object + type: object + timeSeriesQueryLanguage: + description: A query used to fetch time + series with MQL. + type: string + unitOverride: + description: The unit of data contained + in fetched time series. If non-empty, + this unit will override any unit that + accompanies fetched data. The format + is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + field in `MetricDescriptor`. + type: string + type: object + type: object + type: array + metricVisualization: + description: Optional. Store rendering strategy + type: string + required: + - dataSets type: object title: description: Optional. The title of the widget. @@ -93189,30 +95720,33 @@ spec: legendTemplate: description: A template string for naming `TimeSeries` in the resulting data set. - This should be a string with interpolations - of the form `${label_name}`, which will - resolve to the label's value. type: string minAlignmentPeriod: description: Optional. The lower bound on - data point frequency for this data set, - implemented by specifying the minimum alignment - period to use in a time series query For - example, if the data is published once every - 10 minutes, the `min_alignment_period` should - be at least 10 minutes. It would not make - sense to fetch and align data at one minute - intervals. + data point frequency for this data set. type: string plotType: description: How this data should be plotted on the chart. type: string + targetAxis: + description: Optional. The target axis to + use for plotting the metric. + type: string timeSeriesQuery: - description: Required. Fields for querying - time series data from the Stackdriver metrics - API. + description: Fields for querying time series + data from the Stackdriver metrics API. properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as + the alignment period so that there will + be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string timeSeriesFilter: description: Filter parameters to fetch time series. @@ -93224,91 +95758,45 @@ spec: for different views of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object filter: @@ -93346,91 +95834,45 @@ spec: after `aggregation` is applied. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object required: @@ -93447,104 +95889,54 @@ spec: aggregation: description: By default, the raw time series data is returned. - Use this field to combine multiple - time series for different views - of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in all + the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done + before the per-series aligner + can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction + operation to be used to + combine time series into + a single time series, where + the value of each data point + in the resulting series + is a function of all the + already aligned values in + the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the - same value for each of the - grouping fields. Each individual - time series is a member - of exactly one subset. The - `cross_series_reducer` is - applied to each subset of - time series. It is not possible - to reduce across different - resource types, so this - field implicitly contains - `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If - `group_by_fields` is not - specified and all the time - series have the same resource - type, then the time series - are aggregated into a single - output time series. If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` + describes how to bring the + data points in a single + time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all + the data points in an `alignment_period` + to be mathematically grouped + together, resulting in a + single data point for each + `alignment_period` with + end timestamp at the end + of the period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -93558,104 +95950,54 @@ spec: aggregation: description: By default, the raw time series data is returned. - Use this field to combine multiple - time series for different views - of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in all + the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done + before the per-series aligner + can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction + operation to be used to + combine time series into + a single time series, where + the value of each data point + in the resulting series + is a function of all the + already aligned values in + the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the - same value for each of the - grouping fields. Each individual - time series is a member - of exactly one subset. The - `cross_series_reducer` is - applied to each subset of - time series. It is not possible - to reduce across different - resource types, so this - field implicitly contains - `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If - `group_by_fields` is not - specified and all the time - series have the same resource - type, then the time series - are aggregated into a single - output time series. If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` + describes how to bring the + data points in a single + time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all + the data points in an `alignment_period` + to be mathematically grouped + together, resulting in a + single data point for each + `alignment_period` with + end timestamp at the end + of the period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -93691,91 +96033,45 @@ spec: after the ratio is computed. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object type: object @@ -93813,6 +96109,11 @@ spec: label: description: A label for the threshold. type: string + targetAxis: + description: The target axis to use for plotting + the threshold. Target axis is not allowed + in a Scorecard. + type: string value: description: The value of the threshold. The value should be defined in the native scale @@ -93823,11 +96124,7 @@ spec: type: array timeshiftDuration: description: The duration used to display a comparison - chart. A comparison chart simultaneously shows - values from two similar-length time periods (e.g., - week-over-week metrics). The duration must be - positive, and it can only be applied to charts - with data sets of LINE plot type. + chart. type: string xAxis: description: The properties applied to the x-axis. @@ -93840,6 +96137,17 @@ spec: scale is used. type: string type: object + y2Axis: + description: The properties applied to the y2-axis. + properties: + label: + description: The label of the axis. + type: string + scale: + description: The axis scale. By default, a linear + scale is used. + type: string + type: object yAxis: description: The properties applied to the y-axis. properties: @@ -93910,8 +96218,7 @@ spec: type: object resourceID: description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. + creation and acquisition. type: string rowLayout: description: The content is divided into equally spaced rows and the @@ -93924,9 +96231,7 @@ spec: weight: description: The relative weight of this row. The row weight is used to adjust the height of rows on the screen (relative - to peers). Greater the weight, greater the height of the - row on the screen. If omitted, a value of 1 is used while - rendering. + to peers). format: int64 type: integer widgets: @@ -93934,23 +96239,195 @@ spec: this row. items: properties: + alertChart: + description: A chart of alert policy data. + properties: + alertPolicyRef: + description: Required. A reference to the MonitoringAlertPolicy. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The MonitoringAlertPolicy link + in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", + when not managed by KCC. + type: string + name: + description: The `name` field of a `MonitoringAlertPolicy` + resource. + type: string + namespace: + description: The `namespace` field of a `MonitoringAlertPolicy` + resource. + type: string + type: object + required: + - alertPolicyRef + type: object blank: description: A blank space. type: object + collapsibleGroup: + description: A widget that groups the other widgets. + All widgets that are within the area spanned by + the grouping widget are considered member widgets. + properties: + collapsed: + description: The collapsed state of the widget + on first page load. + type: boolean + type: object + errorReportingPanel: + description: A widget that displays a list of error + groups. + properties: + projectRefs: + description: The projects from which to gather + errors. + items: + description: The Project that this resource + belongs to. + oneOf: + - not: + required: + - external + required: + - name + - kind + - not: + anyOf: + - required: + - name + - required: + - namespace + - required: + - kind + required: + - external + properties: + external: + description: The `projectID` field of a + project, when not managed by KCC. + type: string + kind: + description: The kind of the Project resource; + optional but must be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` + resource. + type: string + namespace: + description: The `namespace` field of a + `Project` resource. + type: string + type: object + type: array + services: + description: An identifier of the service, such + as the name of the executable, job, or Google + App Engine service name. This field is expected + to have a low number of values that are relatively + stable over time, as opposed to `version`, which + can be changed whenever new code is deployed. + items: + type: string + type: array + versions: + description: Represents the source code version + that the developer provided, which could represent + a version label or a Git SHA-1 hash, for example. + For App Engine standard environment, the version + is set to the version of the app. + items: + type: string + type: array + type: object + id: + description: Optional. The widget id. Ids may be made + up of alphanumerics, dashes and underscores. Widget + ids are optional. + type: string + incidentList: + description: A widget that shows list of incidents. + properties: + monitoredResources: + description: Optional. The monitored resource + for which incidents are listed. + items: + properties: + labels: + additionalProperties: + type: string + description: Required. Values for all of + the labels listed in the associated monitored + resource descriptor. + type: object + type: + description: Required. The monitored resource + type. This field must match the `type` + field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] + object. + type: string + type: object + type: array + policyRefs: + description: Optional. A list of alert policies + to filter the incident list by. + items: + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The MonitoringAlertPolicy link + in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", + when not managed by KCC. + type: string + name: + description: The `name` field of a `MonitoringAlertPolicy` + resource. + type: string + namespace: + description: The `namespace` field of a + `MonitoringAlertPolicy` resource. + type: string + type: object + type: array + type: object logsPanel: description: A widget that shows a stream of logs. properties: filter: description: A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). - Only log entries that match the filter are returned. An - empty filter matches all log entries. type: string resourceNames: description: The names of logging resources to - collect logs for. Currently only projects are - supported. If empty, the widget will default - to the host project. + collect logs for. items: oneOf: - not: @@ -93988,9 +96465,418 @@ spec: type: object type: array type: object + pieChart: + description: A widget that displays timeseries data + as a pie chart. + properties: + chartType: + description: Required. Indicates the visualization + type for the PieChart. + type: string + dataSets: + description: Required. The queries for the chart's + data. + items: + properties: + minAlignmentPeriod: + description: Optional. The lower bound on + data point frequency for this data set. + type: string + sliceNameTemplate: + description: Optional. A template for the + name of the slice. + type: string + timeSeriesQuery: + description: Required. The query for the + PieChart. See, `google.monitoring.dashboard.v1.TimeSeriesQuery`. + properties: + outputFullDuration: + description: Optional. If set, Cloud + Monitoring will treat the full query + duration as the alignment period so + that there will be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string + timeSeriesFilter: + description: Filter parameters to fetch + time series. + properties: + aggregation: + description: By default, the raw + time series data is returned. + Use this field to combine multiple + time series for different views + of the data. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + filter: + description: Required. The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + pickTimeSeriesFilter: + description: Ranking based time + series filter. + properties: + direction: + description: How to use the + ranking to select time series + that pass through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to + other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after `aggregation` is applied. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + required: + - filter + type: object + timeSeriesFilterRatio: + description: Parameters to fetch a ratio + between two time series filters. + properties: + denominator: + description: The denominator of + the ratio. + properties: + aggregation: + description: By default, the + raw time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. + type: string + groupByFields: + description: The set of + fields to preserve when + `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. + type: string + type: object + filter: + description: The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric + types, resources, and projects + to query. + type: string + required: + - filter + type: object + numerator: + description: The numerator of the + ratio. + properties: + aggregation: + description: By default, the + raw time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. + type: string + groupByFields: + description: The set of + fields to preserve when + `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. + type: string + type: object + filter: + description: The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric + types, resources, and projects + to query. + type: string + required: + - filter + type: object + pickTimeSeriesFilter: + description: Ranking based time + series filter. + properties: + direction: + description: How to use the + ranking to select time series + that pass through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to + other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after the ratio is computed. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + type: object + timeSeriesQueryLanguage: + description: A query used to fetch time + series with MQL. + type: string + unitOverride: + description: The unit of data contained + in fetched time series. If non-empty, + this unit will override any unit that + accompanies fetched data. The format + is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + field in `MetricDescriptor`. + type: string + type: object + required: + - timeSeriesQuery + type: object + type: array + showLabels: + description: Optional. Indicates whether or not + the pie chart should show slices' labels + type: boolean + required: + - chartType + - dataSets + type: object scorecard: description: A scorecard summarizing time series data. properties: + blankView: + description: Will cause the `Scorecard` to show + only the value, with no indicator to its value + relative to its thresholds. + type: object gaugeView: description: Will cause the scorecard to show a gauge chart. @@ -94016,11 +96902,7 @@ spec: description: The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a - time series query. For example, if the data - is published once every 10 minutes it would - not make sense to fetch and align data at - one minute intervals. This field is optional - and exists only as a hint. + time series query. type: string sparkChartType: description: Required. The type of sparkchart @@ -94030,48 +96912,9 @@ spec: - sparkChartType type: object thresholds: - description: |- - The thresholds used to determine the state of the scorecard given the - time series' current value. For an actual value x, the scorecard is in a - danger state if x is less than or equal to a danger threshold that triggers - below, or greater than or equal to a danger threshold that triggers above. - Similarly, if x is above/below a warning threshold that triggers - above/below, then the scorecard is in a warning state - unless x also puts - it in a danger state. (Danger trumps warning.) - - - As an example, consider a scorecard with the following four thresholds: - - - ``` - { - value: 90, - category: 'DANGER', - trigger: 'ABOVE', - }, - { - value: 70, - category: 'WARNING', - trigger: 'ABOVE', - }, - { - value: 10, - category: 'DANGER', - trigger: 'BELOW', - }, - { - value: 20, - category: 'WARNING', - trigger: 'BELOW', - } - ``` - - - Then: values less than or equal to 10 would put the scorecard in a DANGER - state, values greater than 10 but less than or equal to 20 a WARNING state, - values strictly between 20 and 70 an OK state, values greater than or equal - to 70 but less than 90 a WARNING state, and values greater than or equal to - 90 a DANGER state. + description: The thresholds used to determine + the state of the scorecard given the time series' + current value. items: properties: color: @@ -94086,6 +96929,11 @@ spec: label: description: A label for the threshold. type: string + targetAxis: + description: The target axis to use for + plotting the threshold. Target axis is + not allowed in a Scorecard. + type: string value: description: The value of the threshold. The value should be defined in the native @@ -94098,6 +96946,16 @@ spec: description: Required. Fields for querying time series data from the Stackdriver metrics API. properties: + outputFullDuration: + description: Optional. If set, Cloud Monitoring + will treat the full query duration as the + alignment period so that there will be only + 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time series + with PromQL. + type: string timeSeriesFilter: description: Filter parameters to fetch time series. @@ -94109,89 +96967,42 @@ spec: different views of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object filter: @@ -94227,89 +97038,42 @@ spec: after `aggregation` is applied. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object required: @@ -94324,101 +97088,52 @@ spec: properties: aggregation: description: By default, the raw time - series data is returned. Use this - field to combine multiple time series - for different views of the data. + series data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -94430,101 +97145,52 @@ spec: properties: aggregation: description: By default, the raw time - series data is returned. Use this - field to combine multiple time series - for different views of the data. + series data is returned. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in + seconds, that is used to divide + the data in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the + per-series aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point + in the resulting series is a + function of all the already + aligned values in the input + time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the same - value for each of the grouping - fields. Each individual time - series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of - time series. It is not possible - to reduce across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same resource - type, then the time series are - aggregated into a single output - time series. If `cross_series_reducer` - is not defined, this field is - ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points in + an `alignment_period` to be + mathematically grouped together, + resulting in a single data point + for each `alignment_period` + with end timestamp at the end + of the period. type: string type: object filter: - description: Required. The [monitoring - filter](https://cloud.google.com/monitoring/api/v3/filters) + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query. type: string @@ -94558,89 +97224,42 @@ spec: after the ratio is computed. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, in seconds, + that is used to divide the data + in all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of time. + This will be done before the per-series + aligner can be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time series + into a single time series, where + the value of each data point in + the resulting series is a function + of all the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series are - partitioned into subsets prior to - applying the aggregation operation. - Each subset contains time series - that have the same value for each - of the grouping fields. Each individual - time series is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset of time - series. It is not possible to reduce - across different resource types, - so this field implicitly contains - `resource.type`. Fields not specified - in `group_by_fields` are aggregated - away. If `group_by_fields` is not - specified and all the time series - have the same resource type, then - the time series are aggregated into - a single output time series. If - `cross_series_reducer` is not defined, - this field is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points in + a single time series into temporal + alignment. Except for `ALIGN_NONE`, + all alignments cause all the data + points in an `alignment_period` + to be mathematically grouped together, + resulting in a single data point + for each `alignment_period` with + end timestamp at the end of the + period. type: string type: object type: object @@ -94660,6 +97279,22 @@ spec: required: - timeSeriesQuery type: object + sectionHeader: + description: A widget that defines a section header + for easier navigation of the dashboard. + properties: + dividerBelow: + description: Whether to insert a divider below + the section in the table of contents + type: boolean + subtitle: + description: The subtitle of the section + type: string + type: object + singleViewGroup: + description: A widget that groups the other widgets + by using a dropdown menu. + type: object text: description: A raw string or markdown displaying textual content. @@ -94670,6 +97305,465 @@ spec: format: description: How the text content is formatted. type: string + style: + description: How the text is styled + properties: + backgroundColor: + description: The background color as a hex + string. "#RRGGBB" or "#RGB" + type: string + fontSize: + description: Font sizes for both the title + and content. The title will still be larger + relative to the content. + type: string + horizontalAlignment: + description: The horizontal alignment of both + the title and content + type: string + padding: + description: The amount of padding around + the widget + type: string + pointerLocation: + description: The pointer location for this + widget (also sometimes called a "tail") + type: string + textColor: + description: The text color as a hex string. + "#RRGGBB" or "#RGB" + type: string + verticalAlignment: + description: The vertical alignment of both + the title and content + type: string + type: object + type: object + timeSeriesTable: + description: A widget that displays time series data + in a tabular format. + properties: + columnSettings: + description: Optional. The list of the persistent + column settings for the table. + items: + properties: + column: + description: Required. The id of the column. + type: string + visible: + description: Required. Whether the column + should be visible on page load. + type: boolean + required: + - column + - visible + type: object + type: array + dataSets: + description: Required. The data displayed in this + table. + items: + properties: + minAlignmentPeriod: + description: Optional. The lower bound on + data point frequency for this data set. + type: string + tableDisplayOptions: + description: Optional. Table display options + for configuring how the table is rendered. + properties: + shownColumns: + description: Optional. This field is + unused and has been replaced by TimeSeriesTable.column_settings + items: + type: string + type: array + type: object + tableTemplate: + description: Optional. A template string + for naming `TimeSeries` in the resulting + data set. + type: string + timeSeriesQuery: + description: Required. Fields for querying + time series data from the Stackdriver + metrics API. + properties: + outputFullDuration: + description: Optional. If set, Cloud + Monitoring will treat the full query + duration as the alignment period so + that there will be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string + timeSeriesFilter: + description: Filter parameters to fetch + time series. + properties: + aggregation: + description: By default, the raw + time series data is returned. + Use this field to combine multiple + time series for different views + of the data. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + filter: + description: Required. The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric types, + resources, and projects to query. + type: string + pickTimeSeriesFilter: + description: Ranking based time + series filter. + properties: + direction: + description: How to use the + ranking to select time series + that pass through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to + other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after `aggregation` is applied. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + required: + - filter + type: object + timeSeriesFilterRatio: + description: Parameters to fetch a ratio + between two time series filters. + properties: + denominator: + description: The denominator of + the ratio. + properties: + aggregation: + description: By default, the + raw time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. + type: string + groupByFields: + description: The set of + fields to preserve when + `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. + type: string + type: object + filter: + description: The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric + types, resources, and projects + to query. + type: string + required: + - filter + type: object + numerator: + description: The numerator of the + ratio. + properties: + aggregation: + description: By default, the + raw time series data is returned. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. + type: string + crossSeriesReducer: + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. + type: string + groupByFields: + description: The set of + fields to preserve when + `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. + type: string + type: object + filter: + description: The [monitoring + filter](https://cloud.google.com/monitoring/api/v3/filters) + that identifies the metric + types, resources, and projects + to query. + type: string + required: + - filter + type: object + pickTimeSeriesFilter: + description: Ranking based time + series filter. + properties: + direction: + description: How to use the + ranking to select time series + that pass through the filter. + type: string + numTimeSeries: + description: How many time series + to allow to pass through the + filter. + format: int32 + type: integer + rankingMethod: + description: '`ranking_method` + is applied to each time series + independently to produce the + value which will be used to + compare the time series to + other time series.' + type: string + type: object + secondaryAggregation: + description: Apply a second aggregation + after the ratio is computed. + properties: + alignmentPeriod: + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. + type: string + crossSeriesReducer: + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. + type: string + groupByFields: + description: The set of fields + to preserve when `cross_series_reducer` + is specified. + items: + type: string + type: array + perSeriesAligner: + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. + type: string + type: object + type: object + timeSeriesQueryLanguage: + description: A query used to fetch time + series with MQL. + type: string + unitOverride: + description: The unit of data contained + in fetched time series. If non-empty, + this unit will override any unit that + accompanies fetched data. The format + is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) + field in `MetricDescriptor`. + type: string + type: object + type: object + type: array + metricVisualization: + description: Optional. Store rendering strategy + type: string + required: + - dataSets type: object title: description: Optional. The title of the widget. @@ -94692,30 +97786,33 @@ spec: legendTemplate: description: A template string for naming `TimeSeries` in the resulting data set. - This should be a string with interpolations - of the form `${label_name}`, which will - resolve to the label's value. type: string minAlignmentPeriod: description: Optional. The lower bound on - data point frequency for this data set, - implemented by specifying the minimum - alignment period to use in a time series - query For example, if the data is published - once every 10 minutes, the `min_alignment_period` - should be at least 10 minutes. It would - not make sense to fetch and align data - at one minute intervals. + data point frequency for this data set. type: string plotType: description: How this data should be plotted on the chart. type: string + targetAxis: + description: Optional. The target axis to + use for plotting the metric. + type: string timeSeriesQuery: - description: Required. Fields for querying - time series data from the Stackdriver - metrics API. + description: Fields for querying time series + data from the Stackdriver metrics API. properties: + outputFullDuration: + description: Optional. If set, Cloud + Monitoring will treat the full query + duration as the alignment period so + that there will be only 1 output value. + type: boolean + prometheusQuery: + description: A query used to fetch time + series with PromQL. + type: string timeSeriesFilter: description: Filter parameters to fetch time series. @@ -94728,93 +97825,46 @@ spec: of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the - same value for each of the - grouping fields. Each individual - time series is a member of - exactly one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is not - possible to reduce across - different resource types, - so this field implicitly contains - `resource.type`. Fields not - specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same - resource type, then the time - series are aggregated into - a single output time series. - If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. type: string type: object filter: @@ -94852,93 +97902,46 @@ spec: after `aggregation` is applied. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the - same value for each of the - grouping fields. Each individual - time series is a member of - exactly one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is not - possible to reduce across - different resource types, - so this field implicitly contains - `resource.type`. Fields not - specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same - resource type, then the time - series are aggregated into - a single output time series. - If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. type: string type: object required: @@ -94955,106 +97958,58 @@ spec: aggregation: description: By default, the raw time series data is returned. - Use this field to combine - multiple time series for different - views of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time - series are partitioned - into subsets prior to - applying the aggregation - operation. Each subset - contains time series that - have the same value for - each of the grouping fields. - Each individual time series - is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is - not possible to reduce - across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If - `group_by_fields` is not - specified and all the - time series have the same - resource type, then the - time series are aggregated - into a single output time - series. If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. type: string type: object filter: - description: Required. The [monitoring + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects @@ -95070,106 +98025,58 @@ spec: aggregation: description: By default, the raw time series data is returned. - Use this field to combine - multiple time series for different - views of the data. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used + to divide the data in + all the [time series][google.monitoring.v3.TimeSeries] + into consistent blocks + of time. This will be + done before the per-series + aligner can be applied + to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction + operation to be used to + combine time series into + a single time series, + where the value of each + data point in the resulting + series is a function of + all the already aligned + values in the input time + series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time - series are partitioned - into subsets prior to - applying the aggregation - operation. Each subset - contains time series that - have the same value for - each of the grouping fields. - Each individual time series - is a member of exactly - one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is - not possible to reduce - across different resource - types, so this field implicitly - contains `resource.type`. Fields - not specified in `group_by_fields` - are aggregated away. If - `group_by_fields` is not - specified and all the - time series have the same - resource type, then the - time series are aggregated - into a single output time - series. If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` + describes how to bring + the data points in a single + time series into temporal + alignment. Except for + `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` + to be mathematically grouped + together, resulting in + a single data point for + each `alignment_period` + with end timestamp at + the end of the period. type: string type: object filter: - description: Required. The [monitoring + description: The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects @@ -95207,93 +98114,46 @@ spec: after the ratio is computed. properties: alignmentPeriod: - description: |- - The `alignment_period` specifies a time interval, in seconds, that is used - to divide the data in all the - [time series][google.monitoring.v3.TimeSeries] into consistent blocks of - time. This will be done before the per-series aligner can be applied to - the data. - - - The value must be at least 60 seconds. If a per-series aligner other than - `ALIGN_NONE` is specified, this field is required or an error is returned. - If no per-series aligner is specified, or the aligner `ALIGN_NONE` is - specified, then this field is ignored. - - - The maximum value of the `alignment_period` is 2 years, or 104 weeks. + description: The `alignment_period` + specifies a time interval, + in seconds, that is used to + divide the data in all the + [time series][google.monitoring.v3.TimeSeries] + into consistent blocks of + time. This will be done before + the per-series aligner can + be applied to the data. type: string crossSeriesReducer: - description: |- - The reduction operation to be used to combine time series into a single - time series, where the value of each data point in the resulting series is - a function of all the already aligned values in the input time series. - - - Not all reducer operations can be applied to all time series. The valid - choices depend on the `metric_kind` and the `value_type` of the original - time series. Reduction can yield a time series with a different - `metric_kind` or `value_type` than the input time series. - - - Time series data must first be aligned (see `per_series_aligner`) in order - to perform cross-time series reduction. If `cross_series_reducer` is - specified, then `per_series_aligner` must be specified, and must not be - `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an - error is returned. + description: The reduction operation + to be used to combine time + series into a single time + series, where the value of + each data point in the resulting + series is a function of all + the already aligned values + in the input time series. type: string groupByFields: description: The set of fields to preserve when `cross_series_reducer` - is specified. The `group_by_fields` - determine how the time series - are partitioned into subsets - prior to applying the aggregation - operation. Each subset contains - time series that have the - same value for each of the - grouping fields. Each individual - time series is a member of - exactly one subset. The `cross_series_reducer` - is applied to each subset - of time series. It is not - possible to reduce across - different resource types, - so this field implicitly contains - `resource.type`. Fields not - specified in `group_by_fields` - are aggregated away. If `group_by_fields` - is not specified and all the - time series have the same - resource type, then the time - series are aggregated into - a single output time series. - If `cross_series_reducer` - is not defined, this field - is ignored. + is specified. items: type: string type: array perSeriesAligner: - description: |- - An `Aligner` describes how to bring the data points in a single - time series into temporal alignment. Except for `ALIGN_NONE`, all - alignments cause all the data points in an `alignment_period` to be - mathematically grouped together, resulting in a single data point for - each `alignment_period` with end timestamp at the end of the period. - - - Not all alignment operations may be applied to all time series. The valid - choices depend on the `metric_kind` and `value_type` of the original time - series. Alignment can change the `metric_kind` or the `value_type` of - the time series. - - - Time series data must be aligned in order to perform cross-time - series reduction. If `cross_series_reducer` is specified, then - `per_series_aligner` must be specified and not equal to `ALIGN_NONE` - and `alignment_period` must be specified; otherwise, an error is - returned. + description: An `Aligner` describes + how to bring the data points + in a single time series into + temporal alignment. Except + for `ALIGN_NONE`, all alignments + cause all the data points + in an `alignment_period` to + be mathematically grouped + together, resulting in a single + data point for each `alignment_period` + with end timestamp at the + end of the period. type: string type: object type: object @@ -95331,6 +98191,11 @@ spec: label: description: A label for the threshold. type: string + targetAxis: + description: The target axis to use for + plotting the threshold. Target axis is + not allowed in a Scorecard. + type: string value: description: The value of the threshold. The value should be defined in the native @@ -95341,11 +98206,7 @@ spec: type: array timeshiftDuration: description: The duration used to display a comparison - chart. A comparison chart simultaneously shows - values from two similar-length time periods - (e.g., week-over-week metrics). The duration - must be positive, and it can only be applied - to charts with data sets of LINE plot type. + chart. type: string xAxis: description: The properties applied to the x-axis. @@ -95358,6 +98219,17 @@ spec: linear scale is used. type: string type: object + y2Axis: + description: The properties applied to the y2-axis. + properties: + label: + description: The label of the axis. + type: string + scale: + description: The axis scale. By default, a + linear scale is used. + type: string + type: object yAxis: description: The properties applied to the y-axis. properties: @@ -95412,11 +98284,7 @@ spec: etag: description: \`etag\` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting - each other. An \`etag\` is returned in the response to \`GetDashboard\`, - and users are expected to put that etag in the request to \`UpdateDashboard\` - to ensure that their change will be applied to the same version - of the Dashboard configuration. The field should not be passed during - dashboard creation. + each other. type: string observedGeneration: description: ObservedGeneration is the generation of the resource @@ -95439,7 +98307,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -95630,7 +98498,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -95925,7 +98793,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -96052,7 +98920,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -96353,7 +99221,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -96924,7 +99792,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -97083,7 +99951,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -97462,7 +100330,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -97587,9 +100455,276 @@ spec: type: string type: object type: array - createTime: - description: Output only. The time the hub was created. - format: date-time + createTime: + description: Output only. The time the hub was created. + format: date-time + type: string + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + routingVpcs: + description: The VPC network associated with this hub's spokes. All + of the VPN tunnels, VLAN attachments, and router appliance instances + referenced by this hub's spokes must belong to this VPC network. + This field is read-only. Network Connectivity Center automatically + populates it based on the set of spokes attached to the hub. + items: + properties: + uri: + description: The URI of the VPC network. + type: string + type: object + type: array + state: + description: 'Output only. The current lifecycle state of this hub. + Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING' + type: string + uniqueId: + description: Output only. The Google-generated UUID for the hub. This + value is unique across all hub resources. If a hub is deleted and + another with the same name is created, the new hub is assigned a + different unique_id. + type: string + updateTime: + description: Output only. The time the hub was last updated. + format: date-time + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/system: "true" + name: networkconnectivityserviceconnectionpolicies.networkconnectivity.cnrm.cloud.google.com +spec: + group: networkconnectivity.cnrm.cloud.google.com + names: + kind: NetworkConnectivityServiceConnectionPolicy + listKind: NetworkConnectivityServiceConnectionPolicyList + plural: networkconnectivityserviceconnectionpolicies + singular: networkconnectivityserviceconnectionpolicy + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: NetworkConnectivityServiceConnectionPolicy is the Schema for + the NetworkConnectivityServiceConnectionPolicy API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: NetworkConnectivityServiceConnectionPolicySpec defines the + desired state of NetworkConnectivityServiceConnectionPolicy + properties: + description: + description: A description of this resource. + type: string + location: + description: Immutable. Location of the resource. + type: string + networkRef: + description: 'The resource path of the consumer network. Example: + - projects/{projectNumOrId}/global/networks/{resourceId}.' + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. + type: string + name: + description: The `name` field of a `ComputeNetwork` resource. + type: string + namespace: + description: The `namespace` field of a `ComputeNetwork` resource. + type: string + type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object + pscConfig: + description: Configuration used for Private Service Connect connections. + Used when Infrastructure is PSC. + properties: + limit: + description: Optional. Max number of PSC connections for this + policy. + format: int64 + type: integer + producerInstanceLocation: + description: Required. ProducerInstanceLocation is used to specify + which authorization mechanism to use to determine which projects + the Producer instance can be within. + type: string + subnetworkRefs: + description: 'The resource paths of subnetworks to use for IP + address management. Example: projects/{projectNumOrId}/regions/{region}/subnetworks/{resourceId}.' + items: + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", + when not managed by KCC. + type: string + name: + description: The `name` field of a `ComputeSubnetwork` resource. + type: string + namespace: + description: The `namespace` field of a `ComputeSubnetwork` + resource. + type: string + type: object + type: array + type: object + resourceID: + description: The NetworkConnectivityServiceConnectionPolicy name. + If not given, the metadata.name will be used. + type: string + serviceClass: + description: The service class identifier for which this ServiceConnectionPolicy + is for. The service class identifier is a unique, symbolic representation + of a ServiceClass. It is provided by the Service Producer. Google + services have a prefix of gcp. For example, gcp-cloud-sql. 3rd party + services do not. For example, test-service-a3dfcx. + type: string + required: + - location + - projectRef + type: object + status: + description: NetworkConnectivityServiceConnectionPolicyStatus defines + the config connector machine state of NetworkConnectivityServiceConnectionPolicy + properties: + conditions: + description: Conditions represent the latest available observations + of the object's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + externalRef: + description: A unique specifier for the NetworkConnectivityServiceConnectionPolicy + resource in GCP. type: string observedGeneration: description: ObservedGeneration is the generation of the resource @@ -97597,54 +100732,134 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer - routingVpcs: - description: The VPC network associated with this hub's spokes. All - of the VPN tunnels, VLAN attachments, and router appliance instances - referenced by this hub's spokes must belong to this VPC network. - This field is read-only. Network Connectivity Center automatically - populates it based on the set of spokes attached to the hub. - items: - properties: - uri: - description: The URI of the VPC network. - type: string - type: object - type: array - state: - description: 'Output only. The current lifecycle state of this hub. - Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING' - type: string - uniqueId: - description: Output only. The Google-generated UUID for the hub. This - value is unique across all hub resources. If a hub is deleted and - another with the same name is created, the new hub is assigned a - different unique_id. - type: string - updateTime: - description: Output only. The time the hub was last updated. - format: date-time - type: string + observedState: + description: ObservedState is the state of the resource as most recently + observed in GCP. + properties: + createTime: + description: Output only. Time when the ServiceConnectionMap was + created. + type: string + etag: + description: Optional. The etag is computed by the server, and + may be sent on update and delete requests to ensure the client + has an up-to-date value before proceeding. + type: string + infrastructure: + description: Output only. The type of underlying resources used + to create the connection. + type: string + pscConnections: + description: Output only. [Output only] Information about each + Private Service Connect connection. + items: + properties: + consumerAddress: + description: The resource reference of the consumer address. + type: string + consumerForwardingRule: + description: The resource reference of the PSC Forwarding + Rule within the consumer VPC. + type: string + consumerTargetProject: + description: The project where the PSC connection is created. + type: string + error: + description: The most recent error during operating this + connection. + properties: + code: + description: The status code, which should be an enum + value of google.rpc.Code. + format: int32 + type: integer + message: + description: A developer-facing error message, which + should be in English. Any user-facing error message + should be localized and sent in the google.rpc.Status.details + field, or localized by the client. + type: string + type: object + errorInfo: + description: Output only. The error info for the latest + error during operating this connection. + properties: + domain: + description: 'The logical grouping to which the "reason" + belongs. The error domain is typically the registered + service name of the tool or product that generates + the error. Example: "pubsub.googleapis.com". If the + error is generated by some common infrastructure, + the error domain must be a globally unique value that + identifies the infrastructure. For Google API infrastructure, + the error domain is "googleapis.com".' + type: string + metadata: + additionalProperties: + type: string + description: 'Additional structured details about this + error. Keys must match /a-z+/ but should ideally be + lowerCamelCase. Also they must be limited to 64 characters + in length. When identifying the current value of an + exceeded limit, the units should be contained in the + key, not the value. For example, rather than {"instanceLimit": + "100/request"}, should be returned as, {"instanceLimitPerRequest": + "100"}, if the client exceeds the number of instances + that can be created in a single (batch) request.' + type: object + reason: + description: The reason of the error. This is a constant + value that identifies the proximate cause of the error. + Error reasons are unique within a particular domain + of errors. This should be at most 63 characters and + match a regular expression of `A-Z+[A-Z0-9]`, which + represents UPPER_SNAKE_CASE. + type: string + type: object + errorType: + description: The error type indicates whether the error + is consumer facing, producer facing or system internal. + type: string + gceOperation: + description: The last Compute Engine operation to setup + PSC connection. + type: string + producerInstanceID: + description: Immutable. An immutable identifier for the + producer instance. + type: string + pscConnectionID: + description: The PSC connection id of the PSC forwarding + rule. + type: string + selectedSubnetwork: + description: Output only. The URI of the subnetwork selected + to allocate IP address for this connection. + type: string + state: + description: State of the PSC Connection + type: string + type: object + type: array + updateTime: + description: Output only. Time when the ServiceConnectionMap was + updated. + type: string + type: object type: object - required: - - spec type: object served: true storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98031,7 +101246,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -98306,7 +101521,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98564,7 +101779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -98793,7 +102008,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -99037,7 +102252,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -99274,7 +102489,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -99621,7 +102836,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -100528,7 +103743,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -100849,7 +104064,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101075,7 +104290,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -101542,7 +104757,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -102276,7 +105491,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -102452,7 +105667,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -102782,7 +105997,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -103103,7 +106318,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -103323,7 +106538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -103484,7 +106699,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -104253,7 +107468,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -105255,7 +108470,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -105946,7 +109161,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -106082,7 +109297,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -106585,7 +109800,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -107590,7 +110805,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -108501,7 +111716,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -108917,7 +112132,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -109142,7 +112357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -109298,7 +112513,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -109465,7 +112680,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -109669,7 +112884,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -109824,7 +113039,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -110332,7 +113547,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -110549,7 +113764,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/dcl2crd: "true" @@ -110773,9 +113988,279 @@ spec: type: string type: object type: array - createTime: - description: The timestamp corresponding to the creation of this Key. - format: date-time + createTime: + description: The timestamp corresponding to the creation of this Key. + format: date-time + type: string + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/system: "true" + name: redisclusters.redis.cnrm.cloud.google.com +spec: + group: redis.cnrm.cloud.google.com + names: + categories: + - gcp + kind: RedisCluster + listKind: RedisClusterList + plural: redisclusters + singular: rediscluster + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: RedisCluster is the Schema for the RedisCluster API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: RedisClusterSpec defines the desired state of RedisCluster + properties: + authorizationMode: + description: Optional. The authorization mode of the Redis cluster. + If not provided, auth feature is disabled for the cluster. + type: string + deletionProtectionEnabled: + description: Optional. The delete operation will fail when the value + is set to true. + type: boolean + location: + description: Immutable. Location of the resource. + type: string + nodeType: + description: Optional. The type of a redis node in the cluster. NodeType + determines the underlying machine-type of a redis node. + type: string + persistenceConfig: + description: Optional. Persistence config (RDB, AOF) for the cluster. + properties: + aofConfig: + description: Optional. AOF configuration. This field will be ignored + if mode is not AOF. + properties: + appendFsync: + description: Optional. fsync configuration. + type: string + type: object + mode: + description: Optional. The mode of persistence. + type: string + rdbConfig: + description: Optional. RDB configuration. This field will be ignored + if mode is not RDB. + properties: + rdbSnapshotPeriod: + description: Optional. Period between RDB snapshots. + type: string + rdbSnapshotStartTime: + description: Optional. The time that the first snapshot was/will + be attempted, and to which future snapshots will be aligned. + If not provided, the current time will be used. + type: string + type: object + type: object + projectRef: + description: Immutable. The Project that this resource belongs to. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The `projectID` field of a project, when not managed + by KCC. + type: string + kind: + description: The kind of the Project resource; optional but must + be `Project` if provided. + type: string + name: + description: The `name` field of a `Project` resource. + type: string + namespace: + description: The `namespace` field of a `Project` resource. + type: string + type: object + pscConfigs: + description: Required. Each PscConfig configures the consumer network + where IPs will be designated to the cluster for client access through + Private Service Connect Automation. Currently, only one PscConfig + is supported. + items: + properties: + networkRef: + description: Required. The network where the IP address of the + discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. + type: string + name: + description: The `name` field of a `ComputeNetwork` resource. + type: string + namespace: + description: The `namespace` field of a `ComputeNetwork` + resource. + type: string + type: object + required: + - networkRef + type: object + type: array + redisConfigs: + additionalProperties: + type: string + description: Optional. Key/Value pairs of customer overrides for mutable + Redis Configs + type: object + replicaCount: + description: Optional. The number of replica nodes per shard. + format: int32 + type: integer + resourceID: + description: The RedisCluster name. If not given, the metadata.name + will be used. + type: string + shardCount: + description: Required. Number of shards for the Redis cluster. + format: int32 + type: integer + transitEncryptionMode: + description: Optional. The in-transit encryption for the Redis cluster. + If not provided, encryption is disabled for the cluster. + type: string + zoneDistributionConfig: + description: Optional. This config will be used to determine how the + customer wants us to distribute cluster resources within the region. + properties: + mode: + description: Optional. The mode of zone distribution. Defaults + to MULTI_ZONE, when not specified. + type: string + zone: + description: Optional. When SINGLE ZONE distribution is selected, + zone field would be used to allocate all resources in that zone. + This is not applicable to MULTI_ZONE, and would be ignored for + MULTI_ZONE clusters. + type: string + type: object + required: + - location + - projectRef + type: object + status: + description: RedisClusterStatus defines the config connector machine state + of RedisCluster + properties: + conditions: + description: Conditions represent the latest available observations + of the object's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + externalRef: + description: A unique specifier for the RedisCluster resource in GCP. type: string observedGeneration: description: ObservedGeneration is the generation of the resource @@ -110783,27 +114268,119 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer + observedState: + description: ObservedState is the state of the resource as most recently + observed in GCP. + properties: + createTime: + description: Output only. The timestamp associated with the cluster + creation request. + type: string + discoveryEndpoints: + description: Output only. Endpoints created on each given network, + for Redis clients to connect to the cluster. Currently only + one discovery endpoint is supported. + items: + properties: + address: + description: Output only. Address of the exposed Redis endpoint + used by clients to connect to the service. The address + could be either IP or hostname. + type: string + port: + description: Output only. The port number of the exposed + Redis endpoint. + format: int32 + type: integer + pscConfig: + description: Output only. Customer configuration for where + the endpoint is created and accessed from. + properties: + network: + description: Required. The network where the IP address + of the discovery endpoint will be reserved, in the + form of projects/{network_project}/global/networks/{network_id}. + type: string + type: object + type: object + type: array + preciseSizeGb: + description: Output only. Precise value of redis memory size in + GB for the entire cluster. + type: number + pscConnections: + description: Output only. PSC connections for discovery of the + cluster topology and accessing the cluster. + items: + properties: + address: + description: Output only. The IP allocated on the consumer + network for the PSC forwarding rule. + type: string + forwardingRule: + description: 'Output only. The URI of the consumer side + forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.' + type: string + network: + description: The consumer network where the IP address resides, + in the form of projects/{project_id}/global/networks/{network_id}. + type: string + projectID: + description: Output only. The consumer project_id where + the forwarding rule is created from. + type: string + pscConnectionID: + description: Output only. The PSC connection id of the forwarding + rule connected to the service attachment. + type: string + type: object + type: array + sizeGb: + description: Output only. Redis memory size in GB for the entire + cluster rounded up to the next integer. + format: int32 + type: integer + state: + description: Output only. The current state of this cluster. Can + be CREATING, READY, UPDATING, DELETING and SUSPENDED + type: string + stateInfo: + description: Output only. Additional information about the current + state of the cluster. + properties: + updateInfo: + description: Describes ongoing update on the cluster when + cluster state is UPDATING. + properties: + targetReplicaCount: + description: Target number of replica nodes per shard. + format: int32 + type: integer + targetShardCount: + description: Target number of shards for redis cluster + format: int32 + type: integer + type: object + type: object + uid: + description: Output only. System assigned, unique identifier for + the cluster. + type: string + type: object type: object - required: - - spec type: object served: true storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -111321,7 +114898,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -111499,7 +115076,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -111780,7 +115357,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -112367,6 +115944,49 @@ spec: description: A list of Volumes to make available to containers. items: properties: + cloudSqlInstance: + description: For Cloud SQL volumes, contains the specific + instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run + for more information on how to connect Cloud SQL and + Cloud Run. + properties: + instanceRefs: + items: + description: 'The Cloud SQL instance connection + names, as can be found in https://console.cloud.google.com/sql/instances. + Visit https://cloud.google.com/sql/docs/mysql/connect-run + for more information on how to connect Cloud + SQL and Cloud Run. Format: {project}:{location}:{instance}' + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `connectionName` + field of a `SQLInstance` resource.' + type: string + name: + description: 'Name of the referent. More info: + https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More + info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + type: array + type: object emptyDir: description: Ephemeral storage used as a shared volume. properties: @@ -112782,7 +116402,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -113912,7 +117532,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114252,7 +117872,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114468,7 +118088,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114509,7 +118129,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: SecureSourceManagerInstance is the Schema for the monitoring + description: SecureSourceManagerInstance is the Schema for the SecureSourceManagerInstance API properties: apiVersion: @@ -114525,16 +118145,13 @@ spec: metadata: type: object spec: + description: SecureSourceManagerInstanceSpec defines the desired state + of SecureSourceManagerInstance properties: kmsKey: description: Optional. Immutable. Customer-managed encryption key name, in the format projects/*/locations/*/keyRings/*/cryptoKeys/*. type: string - labels: - additionalProperties: - type: string - description: Optional. Labels as key value pairs. - type: object location: description: Immutable. Location of the instance. type: string @@ -114580,10 +118197,12 @@ spec: - projectRef type: object status: + description: SecureSourceManagerInstanceStatus defines the config connector + machine state of SecureSourceManagerInstance properties: conditions: description: Conditions represent the latest available observations - of the SecureSourceManagerInstance's current state. + of the object's current state. items: properties: lastTransitionTime: @@ -114607,6 +118226,10 @@ spec: type: string type: object type: array + externalRef: + description: A unique specifier for the SecureSourceManagerInstance + resource in GCP. + type: string observedGeneration: description: ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. @@ -114616,7 +118239,8 @@ spec: format: int64 type: integer observedState: - description: ObservedState is the latest GCP state. + description: ObservedState is the state of the resource as most recently + observed in GCP. properties: hostConfig: description: Output only. A list of hostnames for this instance. @@ -114625,10 +118249,10 @@ spec: description: 'Output only. API hostname. This is the hostname to use for **Host: Data Plane** endpoints.' type: string - gitHttp: + gitHTTP: description: Output only. Git HTTP hostname. type: string - gitSsh: + gitSSH: description: Output only. Git SSH hostname. type: string html: @@ -114644,8 +118268,6 @@ spec: type: string type: object type: object - required: - - spec type: object served: true storage: true @@ -114656,7 +118278,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -114861,7 +118483,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115024,7 +118646,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115244,7 +118866,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115401,7 +119023,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115553,7 +119175,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115700,7 +119322,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -115878,7 +119500,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -116019,7 +119641,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -116201,7 +119823,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -116400,7 +120022,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -116609,7 +120231,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -116749,7 +120371,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -116805,179 +120427,236 @@ spec: type: object spec: properties: - charset: - description: |- - The charset value. See MySQL's - [Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html) - and Postgres' [Character Set Support](https://www.postgresql.org/docs/9.6/static/multibyte.html) - for more details and supported values. Postgres databases only support - a value of 'UTF8' at creation time. - type: string - collation: - description: |- - The collation value. See MySQL's - [Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html) - and Postgres' [Collation Support](https://www.postgresql.org/docs/9.6/static/collation.html) - for more details and supported values. Postgres databases only support - a value of 'en_US.UTF8' at creation time. - type: string - deletionPolicy: - description: |- - The deletion policy for the database. Setting ABANDON allows the resource - to be abandoned rather than deleted. This is useful for Postgres, where databases cannot be - deleted from the API if there are users other than cloudsqlsuperuser with access. Possible - values are: "ABANDON", "DELETE". Defaults to "DELETE". - type: string - instanceRef: - description: The Cloud SQL instance. - oneOf: - - not: - required: - - external - required: - - name - - not: - anyOf: - - required: - - name - - required: - - namespace - required: - - external - properties: - external: - description: 'Allowed value: The `name` field of a `SQLInstance` - resource.' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - type: object - resourceID: - description: Immutable. Optional. The name of the resource. Used for - creation and acquisition. When unset, the value of `metadata.name` - is used as the default. - type: string - required: - - instanceRef - type: object - status: - properties: - conditions: - description: Conditions represent the latest available observation - of the resource's current state. - items: - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - type: string - message: - description: Human-readable message indicating details about - last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for the condition's - last transition. - type: string - status: - description: Status is the status of the condition. Can be True, - False, Unknown. - type: string - type: - description: Type is the type of the condition. - type: string - type: object - type: array - observedGeneration: - description: ObservedGeneration is the generation of the resource - that was most recently observed by the Config Connector controller. - If this is equal to metadata.generation, then that means that the - current reported status reflects the most recent desired state of - the resource. - type: integer - selfLink: - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - cnrm.cloud.google.com/version: 1.119.0 - creationTimestamp: null - labels: - cnrm.cloud.google.com/managed-by-kcc: "true" - cnrm.cloud.google.com/stability-level: stable - cnrm.cloud.google.com/system: "true" - cnrm.cloud.google.com/tf2crd: "true" - name: sqlinstances.sql.cnrm.cloud.google.com -spec: - group: sql.cnrm.cloud.google.com - names: - categories: - - gcp - kind: SQLInstance - plural: sqlinstances - shortNames: - - gcpsqlinstance - - gcpsqlinstances - singular: sqlinstance - preserveUnknownFields: false - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: When 'True', the most recent reconcile of the resource succeeded - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: Ready - type: string - - description: The reason for the value in 'Ready' - jsonPath: .status.conditions[?(@.type=='Ready')].reason - name: Status - type: string - - description: The last transition time for the value in 'Status' - jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime - name: Status Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - properties: - apiVersion: - description: 'apiVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - properties: + charset: + description: |- + The charset value. See MySQL's + [Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html) + and Postgres' [Character Set Support](https://www.postgresql.org/docs/9.6/static/multibyte.html) + for more details and supported values. Postgres databases only support + a value of 'UTF8' at creation time. + type: string + collation: + description: |- + The collation value. See MySQL's + [Supported Character Sets and Collations](https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html) + and Postgres' [Collation Support](https://www.postgresql.org/docs/9.6/static/collation.html) + for more details and supported values. Postgres databases only support + a value of 'en_US.UTF8' at creation time. + type: string + deletionPolicy: + description: |- + The deletion policy for the database. Setting ABANDON allows the resource + to be abandoned rather than deleted. This is useful for Postgres, where databases cannot be + deleted from the API if there are users other than cloudsqlsuperuser with access. Possible + values are: "ABANDON", "DELETE". Defaults to "DELETE". + type: string + instanceRef: + description: The Cloud SQL instance. + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: 'Allowed value: The `name` field of a `SQLInstance` + resource.' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + type: object + resourceID: + description: Immutable. Optional. The name of the resource. Used for + creation and acquisition. When unset, the value of `metadata.name` + is used as the default. + type: string + required: + - instanceRef + type: object + status: + properties: + conditions: + description: Conditions represent the latest available observation + of the resource's current state. + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: Status is the status of the condition. Can be True, + False, Unknown. + type: string + type: + description: Type is the type of the condition. + type: string + type: object + type: array + observedGeneration: + description: ObservedGeneration is the generation of the resource + that was most recently observed by the Config Connector controller. + If this is equal to metadata.generation, then that means that the + current reported status reflects the most recent desired state of + the resource. + type: integer + selfLink: + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cnrm.cloud.google.com/version: 1.122.0 + creationTimestamp: null + labels: + cnrm.cloud.google.com/managed-by-kcc: "true" + cnrm.cloud.google.com/stability-level: stable + cnrm.cloud.google.com/system: "true" + name: sqlinstances.sql.cnrm.cloud.google.com +spec: + group: sql.cnrm.cloud.google.com + names: + categories: + - gcp + kind: SQLInstance + listKind: SQLInstanceList + plural: sqlinstances + shortNames: + - gcpsqlinstance + - gcpsqlinstances + singular: sqlinstance + preserveUnknownFields: false + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + - description: When 'True', the most recent reconcile of the resource succeeded + jsonPath: .status.conditions[?(@.type=='Ready')].status + name: Ready + type: string + - description: The reason for the value in 'Ready' + jsonPath: .status.conditions[?(@.type=='Ready')].reason + name: Status + type: string + - description: The last transition time for the value in 'Status' + jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime + name: Status Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: SQLInstance is the Schema for the sql API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + properties: + cloneSource: + description: Create this database as a clone of a source instance. + Immutable. + properties: + binLogCoordinates: + description: Binary log coordinates, if specified, identify the + position up to which the source instance is cloned. If not specified, + the source instance is cloned up to the most recent binary log + coordinates. + properties: + binLogFileName: + description: Name of the binary log file for a Cloud SQL instance. + type: string + binLogPosition: + description: Position (offset) within the binary log file. + format: int64 + type: integer + type: object + databaseNames: + description: (SQL Server only) Clone only the specified databases + from the source instance. Clone all databases if empty. + items: + type: string + type: array + pointInTime: + description: Timestamp, if specified, identifies the time to which + the source instance is cloned. + type: string + sqlInstanceRef: + description: The source SQLInstance to clone + oneOf: + - not: + required: + - external + required: + - name + - not: + anyOf: + - required: + - name + - required: + - namespace + required: + - external + properties: + external: + description: The SQLInstance selfLink, when not managed by + Config Connector. + type: string + name: + description: The `name` field of a `SQLInstance` resource. + type: string + namespace: + description: The `namespace` field of a `SQLInstance` resource. + type: string + type: object + type: object databaseVersion: - default: MYSQL_5_6 description: The MySQL, PostgreSQL or SQL Server (beta) version to use. Supported values include MYSQL_5_6, MYSQL_5_7, MYSQL_8_0, POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, POSTGRES_14, @@ -117002,14 +120681,14 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a `KMSCryptoKey` - resource.' + description: A reference to an externally managed KMSCryptoKey. + Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` of a `KMSCryptoKey` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` of a `KMSCryptoKey` resource. type: string type: object instanceType: @@ -117036,14 +120715,14 @@ spec: - external properties: external: - description: 'Allowed value: The `name` field of a `SQLInstance` - resource.' + description: The SQLInstance selfLink, when not managed by Config + Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `SQLInstance` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `SQLInstance` resource. type: string type: object region: @@ -117073,6 +120752,7 @@ spec: connectRetryInterval: description: Immutable. The number of seconds between connect retries. MySQL's default is 60 seconds. + format: int64 type: integer dumpFilePath: description: Immutable. Path to a SQL file in Google Cloud Storage @@ -117087,20 +120767,10 @@ spec: type: boolean masterHeartbeatPeriod: description: Immutable. Time in ms between replication heartbeats. + format: int64 type: integer password: description: Immutable. Password for the replication connection. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -117122,8 +120792,8 @@ spec: from. type: string required: - - name - key + - name type: object type: object type: object @@ -117145,17 +120815,6 @@ spec: type: string rootPassword: description: Initial root password. Required for MS SQL Server. - oneOf: - - not: - required: - - valueFrom - required: - - value - - not: - required: - - value - required: - - valueFrom properties: value: description: Value of the field. Cannot be used if 'valueFrom' @@ -117176,8 +120835,8 @@ spec: description: Name of the Secret to extract a value from. type: string required: - - name - key + - name type: object type: object type: object @@ -117203,22 +120862,25 @@ spec: threadsPerCore: description: The number of threads per physical core. Can be 1 or 2. + format: int64 type: integer type: object authorizedGaeApplications: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. items: type: string type: array availabilityType: - description: |- - The availability type of the Cloud SQL instance, high availability - (REGIONAL) or single zone (ZONAL). For all instances, ensure that - settings.backup_configuration.enabled is set to true. - For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled is set to true. - For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled + description: The availability type of the Cloud SQL instance, + high availability (REGIONAL) or single zone (ZONAL). For all + instances, ensure that settings.backup_configuration.enabled + is set to true. For MySQL instances, ensure that settings.backup_configuration.binary_log_enabled + is set to true. For Postgres instances, ensure that settings.backup_configuration.point_in_time_recovery_enabled is set to true. Defaults to ZONAL. type: string backupConfiguration: @@ -117227,6 +120889,7 @@ spec: properties: retainedBackups: description: Number of backups to retain. + format: int64 type: integer retentionUnit: description: The unit that 'retainedBackups' represents. @@ -117256,6 +120919,7 @@ spec: description: The number of days of transaction logs we retain for point in time restore, from 1-7. (For PostgreSQL Enterprise Plus instances, from 1 to 35.). + format: int64 type: integer type: object collation: @@ -117265,9 +120929,12 @@ spec: description: Specifies if connections must use Cloud SQL connectors. type: string crashSafeReplication: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: boolean dataCacheConfig: description: Data cache configurations. @@ -117324,11 +120991,13 @@ spec: description: The maximum size, in GB, to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit. + format: int64 type: integer diskSize: description: The size of data disk, in GB. Size of a running instance cannot be reduced but can be increased. The minimum value is 10GB. + format: int64 type: integer diskType: description: 'Immutable. The type of data disk: PD_SSD or PD_HDD. @@ -117348,10 +121017,12 @@ spec: description: Number of query execution plans captured by Insights per minute for all queries combined. Between 0 and 20. Default to 5. + format: int64 type: integer queryStringLength: description: Maximum query length stored in bytes. Between 256 and 4500. Default to 1024. + format: int64 type: integer recordApplicationTags: description: True if Query Insights will record application @@ -117413,14 +121084,15 @@ spec: - external properties: external: - description: 'Allowed value: The `selfLink` field of a - `ComputeNetwork` resource.' + description: The compute network selflink of form "projects//global/networks/", + when not managed by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `ComputeNetwork` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `ComputeNetwork` + resource. type: string type: object pscConfig: @@ -117473,9 +121145,11 @@ spec: properties: day: description: Day of week (1-7), starting on Monday. + format: int64 type: integer hour: description: Hour of day (0-23), ignored if day not set. + format: int64 type: integer updateTrack: description: Receive updates earlier (canary) or later (stable). @@ -117494,6 +121168,7 @@ spec: type: boolean minLength: description: Minimum number of characters allowed. + format: int64 type: integer passwordChangeInterval: description: Minimum interval after which the password can @@ -117501,6 +121176,7 @@ spec: type: string reuseInterval: description: Number of previous passwords that cannot be reused. + format: int64 type: integer required: - enablePasswordPolicy @@ -117509,9 +121185,12 @@ spec: description: Pricing plan for this instance, can only be PER_USE. type: string replicationType: - description: |- - DEPRECATED. This property is only applicable to First Generation instances, and First Generation instances are now deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice for information on how to upgrade to Second Generation instances. - Specifying this field has no-ops; it's recommended to remove this field from your configuration. + description: DEPRECATED. This property is only applicable to First + Generation instances, and First Generation instances are now + deprecated. see https://cloud.google.com/sql/docs/mysql/deprecation-notice + for information on how to upgrade to Second Generation instances. + Specifying this field has no-ops; it's recommended to remove + this field from your configuration. type: string sqlServerAuditConfig: properties: @@ -117533,14 +121212,15 @@ spec: - external properties: external: - description: 'Allowed value: The `url` field of a `StorageBucket` - resource.' + description: The StorageBucket selfLink, when not managed + by Config Connector. type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: The `name` field of a `StorageBucket` resource. type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: The `namespace` field of a `StorageBucket` + resource. type: string type: object retentionInterval: @@ -117580,8 +121260,8 @@ spec: type: string type: array conditions: - description: Conditions represent the latest available observation - of the resource's current state. + description: Conditions represent the latest available observations + of the SQLInstance's current state. items: properties: lastTransitionTime: @@ -117635,6 +121315,7 @@ spec: If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. + format: int64 type: integer privateIpAddress: type: string @@ -117676,18 +121357,12 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -117863,7 +121538,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118104,7 +121779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118274,7 +121949,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118559,6 +122234,18 @@ spec: required: - retentionPeriod type: object + softDeletePolicy: + description: The bucket's soft delete policy, which defines the period + of time that soft-deleted objects will be retained, and cannot be + permanently deleted. If it is not provided, by default Google Cloud + Storage sets this to default soft delete policy. + properties: + retentionDurationSeconds: + description: The duration in seconds that soft-deleted objects + in the bucket will be retained and cannot be permanently deleted. + Default value is 604800. + type: integer + type: object storageClass: description: 'The Storage Class of the new bucket. Supported values include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, @@ -118625,6 +122312,27 @@ spec: current reported status reflects the most recent desired state of the resource. type: integer + observedState: + description: The observed state of the underlying GCP resource. + properties: + softDeletePolicy: + description: The bucket's soft delete policy, which defines the + period of time that soft-deleted objects will be retained, and + cannot be permanently deleted. If it is not provided, by default + Google Cloud Storage sets this to default soft delete policy. + properties: + effectiveTime: + description: Server-determined value that indicates the time + from which the policy, or one with a greater retention, + was effective. This value is in RFC 3339 format. + type: string + retentionDurationSeconds: + description: The duration in seconds that soft-deleted objects + in the bucket will be retained and cannot be permanently + deleted. Default value is 604800. + type: integer + type: object + type: object selfLink: description: The URI of the created resource. type: string @@ -118648,7 +122356,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -118834,7 +122542,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119002,7 +122710,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119205,7 +122913,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -119367,7 +123075,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120005,7 +123713,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120188,7 +123896,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120365,7 +124073,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120530,7 +124238,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120704,7 +124412,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -120924,7 +124632,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121311,7 +125019,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121758,7 +125466,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -121903,7 +125611,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122139,7 +125847,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122354,7 +126062,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -122542,7 +126250,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123052,7 +126760,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123234,7 +126942,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123424,7 +127132,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123703,7 +127411,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" @@ -123895,7 +127603,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/managed-by-kcc: "true" diff --git a/operator/channels/packages/configconnector/1.119.0/namespaced/0-cnrm-system.yaml b/operator/channels/packages/configconnector/1.122.0/namespaced/0-cnrm-system.yaml similarity index 96% rename from operator/channels/packages/configconnector/1.119.0/namespaced/0-cnrm-system.yaml rename to operator/channels/packages/configconnector/1.122.0/namespaced/0-cnrm-system.yaml index 075014ba03..3c79a85494 100644 --- a/operator/channels/packages/configconnector/1.119.0/namespaced/0-cnrm-system.yaml +++ b/operator/channels/packages/configconnector/1.122.0/namespaced/0-cnrm-system.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Namespace metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-system @@ -11,7 +11,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -21,7 +21,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-resource-stats-recorder @@ -31,7 +31,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-unmanaged-detector @@ -41,7 +41,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-manager @@ -51,7 +51,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-cnrm-system-role @@ -72,7 +72,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-cnrm-system-role @@ -93,7 +93,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -1270,7 +1270,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role @@ -1320,7 +1320,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-cluster-role @@ -1378,7 +1378,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-manager-ns-role @@ -1403,7 +1403,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-role @@ -1433,7 +1433,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-unmanaged-detector-cluster-role @@ -1464,7 +1464,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" @@ -2252,7 +2252,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role @@ -2315,7 +2315,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-role-binding @@ -2333,7 +2333,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-role-binding @@ -2351,7 +2351,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-admin-binding @@ -2374,7 +2374,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender-binding @@ -2391,7 +2391,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-recorder-binding @@ -2408,7 +2408,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-unmanaged-detector-binding @@ -2425,7 +2425,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook-binding @@ -2442,7 +2442,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-deletiondefender @@ -2459,7 +2459,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "48797" prometheus.io/scrape: "true" labels: @@ -2480,7 +2480,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2498,7 +2498,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-resource-stats-recorder cnrm.cloud.google.com/system: "true" @@ -2511,8 +2511,8 @@ spec: - /configconnector/recorder env: - name: CONFIG_CONNECTOR_VERSION - value: 1.119.0 - image: gcr.io/gke-release/cnrm/recorder:d63ad2a + value: 1.122.0 + image: gcr.io/gke-release/cnrm/recorder:e373e18 imagePullPolicy: Always name: recorder ports: @@ -2564,7 +2564,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2579,7 +2579,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-webhook-manager cnrm.cloud.google.com/system: "true" @@ -2594,7 +2594,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - image: gcr.io/gke-release/cnrm/webhook:d63ad2a + image: gcr.io/gke-release/cnrm/webhook:e373e18 imagePullPolicy: Always name: webhook ports: @@ -2624,7 +2624,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2639,7 +2639,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-deletiondefender cnrm.cloud.google.com/system: "true" @@ -2647,7 +2647,7 @@ spec: containers: - command: - /configconnector/deletiondefender - image: gcr.io/gke-release/cnrm/deletiondefender:d63ad2a + image: gcr.io/gke-release/cnrm/deletiondefender:e373e18 imagePullPolicy: Always name: deletiondefender ports: @@ -2677,7 +2677,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-unmanaged-detector cnrm.cloud.google.com/system: "true" @@ -2692,7 +2692,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-unmanaged-detector cnrm.cloud.google.com/system: "true" @@ -2700,7 +2700,7 @@ spec: containers: - command: - /configconnector/unmanageddetector - image: gcr.io/gke-release/cnrm/unmanageddetector:d63ad2a + image: gcr.io/gke-release/cnrm/unmanageddetector:e373e18 imagePullPolicy: Always name: unmanageddetector ports: @@ -2731,7 +2731,7 @@ kind: HorizontalPodAutoscaler metadata: annotations: autoscaling.alpha.kubernetes.io/metrics: '[{"type":"Resource","resource":{"name":"memory","targetAverageUtilization":70}}]' - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/system: "true" name: cnrm-webhook diff --git a/operator/channels/packages/configconnector/1.119.0/namespaced/per-namespace-components.yaml b/operator/channels/packages/configconnector/1.122.0/namespaced/per-namespace-components.yaml similarity index 93% rename from operator/channels/packages/configconnector/1.119.0/namespaced/per-namespace-components.yaml rename to operator/channels/packages/configconnector/1.122.0/namespaced/per-namespace-components.yaml index 58506e1bfb..9a25a58283 100644 --- a/operator/channels/packages/configconnector/1.119.0/namespaced/per-namespace-components.yaml +++ b/operator/channels/packages/configconnector/1.122.0/namespaced/per-namespace-components.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: ServiceAccount metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 iam.gke.io/gcp-service-account: cnrm-system-${NAMESPACE?}@${PROJECT_ID?}.iam.gserviceaccount.com labels: cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} @@ -14,7 +14,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 finalizers: - configconnector.cnrm.cloud.google.com/finalizer labels: @@ -35,7 +35,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 finalizers: - configconnector.cnrm.cloud.google.com/finalizer labels: @@ -56,7 +56,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} cnrm.cloud.google.com/system: "true" @@ -75,7 +75,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} cnrm.cloud.google.com/system: "true" @@ -93,7 +93,7 @@ apiVersion: v1 kind: Service metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 prometheus.io/port: "8888" prometheus.io/scrape: "true" labels: @@ -117,7 +117,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} @@ -134,7 +134,7 @@ spec: template: metadata: annotations: - cnrm.cloud.google.com/version: 1.119.0 + cnrm.cloud.google.com/version: 1.122.0 labels: cnrm.cloud.google.com/component: cnrm-controller-manager cnrm.cloud.google.com/scoped-namespace: ${NAMESPACE?} @@ -146,7 +146,7 @@ spec: - --prometheus-scrape-endpoint=:8888 command: - /configconnector/manager - image: gcr.io/gke-release/cnrm/controller:d63ad2a + image: gcr.io/gke-release/cnrm/controller:e373e18 imagePullPolicy: Always name: manager ports: diff --git a/operator/channels/stable b/operator/channels/stable index 14b8cd4b41..d2ffcea725 100644 --- a/operator/channels/stable +++ b/operator/channels/stable @@ -1,2 +1,2 @@ manifests: - - version: 1.121.0 + - version: 1.122.0 diff --git a/operator/config/autopilot/kustomization.yaml b/operator/config/autopilot/kustomization.yaml index 8d88482005..86b0b77a30 100644 --- a/operator/config/autopilot/kustomization.yaml +++ b/operator/config/autopilot/kustomization.yaml @@ -22,7 +22,7 @@ commonLabels: commonAnnotations: # Given our weekly release schedule, the version of the operator should remain the same of ConfigConnector Core, # if we have to release the operator independently with the KCC core, append extension e.g. 1.6.0-operator.x - cnrm.cloud.google.com/operator-version: "1.121.0" + cnrm.cloud.google.com/operator-version: "1.122.0" bases: - ../crd diff --git a/operator/config/default/kustomization.yaml b/operator/config/default/kustomization.yaml index a108ee41f3..e76ab4e3d9 100644 --- a/operator/config/default/kustomization.yaml +++ b/operator/config/default/kustomization.yaml @@ -22,7 +22,7 @@ commonLabels: commonAnnotations: # Given our weekly release schedule, the version of the operator should remain the same of ConfigConnector Core, # if we have to release the operator independently with the KCC core, append extension e.g. 1.6.0-operator.x - cnrm.cloud.google.com/operator-version: "1.121.0" + cnrm.cloud.google.com/operator-version: "1.122.0" bases: - ../crd diff --git a/operator/config/gke-addon/image_configmap.yaml b/operator/config/gke-addon/image_configmap.yaml index a354611290..aefad325d5 100644 --- a/operator/config/gke-addon/image_configmap.yaml +++ b/operator/config/gke-addon/image_configmap.yaml @@ -1,10 +1,10 @@ apiVersion: v1 data: - cnrm.controller: gcr.io/gke-release/cnrm/controller:4fd3fd6 - cnrm.deletiondefender: gcr.io/gke-release/cnrm/deletiondefender:4fd3fd6 - cnrm.recorder: gcr.io/gke-release/cnrm/recorder:4fd3fd6 - cnrm.unmanageddetector: gcr.io/gke-release/cnrm/unmanageddetector:4fd3fd6 - cnrm.webhook: gcr.io/gke-release/cnrm/webhook:4fd3fd6 + cnrm.controller: gcr.io/gke-release/cnrm/controller:e373e18 + cnrm.deletiondefender: gcr.io/gke-release/cnrm/deletiondefender:e373e18 + cnrm.recorder: gcr.io/gke-release/cnrm/recorder:e373e18 + cnrm.unmanageddetector: gcr.io/gke-release/cnrm/unmanageddetector:e373e18 + cnrm.webhook: gcr.io/gke-release/cnrm/webhook:e373e18 prom-to-sd: gke.gcr.io/prometheus-to-sd:v0.11.12-gke.11 kind: ConfigMap metadata: diff --git a/operator/config/rbac/cnrm_viewer_role.yaml b/operator/config/rbac/cnrm_viewer_role.yaml index cf613768bb..46b32c5291 100644 --- a/operator/config/rbac/cnrm_viewer_role.yaml +++ b/operator/config/rbac/cnrm_viewer_role.yaml @@ -2,7 +2,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: - cnrm.cloud.google.com/version: 1.121.0 + cnrm.cloud.google.com/version: 1.122.0 creationTimestamp: null labels: cnrm.cloud.google.com/system: "true" diff --git a/operator/scripts/update-kcc-manifest/main.go b/operator/scripts/update-kcc-manifest/main.go index 9d38f00cef..880f5065f5 100644 --- a/operator/scripts/update-kcc-manifest/main.go +++ b/operator/scripts/update-kcc-manifest/main.go @@ -23,6 +23,7 @@ import ( "os" "path" "regexp" + "sort" "strings" "sigs.k8s.io/kubebuilder-declarative-pattern/pkg/patterns/addon/pkg/loaders" @@ -30,6 +31,7 @@ import ( "github.com/GoogleCloudPlatform/k8s-config-connector/operator/pkg/k8s" "github.com/GoogleCloudPlatform/k8s-config-connector/operator/pkg/test/util/paths" "github.com/GoogleCloudPlatform/k8s-config-connector/operator/scripts/utils" + "github.com/blang/semver/v4" ) const ( @@ -233,7 +235,7 @@ func main() { } log.Printf("successfully updated the version annotation in %v for autopilot kustomization\n", kustomizationFilePath) - //remove the stale manifest + //Update the stable version r := loaders.NewFSRepository(path.Join(operatorSrcRoot, loaders.FlagChannel)) channel, err := r.LoadChannel(ctx, k8s.StableChannel) if err != nil { @@ -243,10 +245,11 @@ func main() { if err != nil { log.Fatal(fmt.Errorf("error resolving the current version: %w", err)) } - if currentVersion.Version == version { - log.Printf("the current KCC version is the same as the latest version %v\n", version) - return - } + /* + if currentVersion.Version == version { + log.Printf("the current KCC version is the same as the latest version %v\n", version) + return + }*/ stableFilePath := path.Join(operatorSrcRoot, "channels", "stable") b, err = ioutil.ReadFile(stableFilePath) if err != nil { @@ -268,16 +271,89 @@ func main() { log.Fatalf("error updating file %v", stableFilePath) } - staleManifestDir := path.Join(operatorSrcRoot, "channels", "packages", "configconnector", currentVersion.Version) - log.Printf("removing stale manifest %v", staleManifestDir) - if err := os.RemoveAll(staleManifestDir); err != nil { - log.Fatal(fmt.Errorf("error deleting dir %v: %w", staleManifestDir, err)) + channelDir := path.Join(operatorSrcRoot, "channels", "packages", "configconnector") + if err := dropStalePackages(channelDir); err != nil { + log.Fatalf("drop stale packages: %s", err) + } + autoPilotChannelDir := path.Join(operatorSrcRoot, "autopilot-channels", "packages", "configconnector") + if err := dropStalePackages(autoPilotChannelDir); err != nil { + log.Fatalf("drop stale packages: %s", err) + } +} + +func dropStalePackages(pacakgesPath string) error { + dirEntries, _ := os.ReadDir(pacakgesPath) + + totalReleases := Releases{} + for _, entry := range dirEntries { + if entry.IsDir() { + totalReleases = append(totalReleases, entry.Name()) + } else { + log.Printf("found unknown file %s under %s\n", entry.Name(), pacakgesPath) + } + } + + // Support the latest 3 minor versions with their latest patch + supported := totalReleases.StablePatchAtTopMinor(3) + + // Drop older versions + for _, r := range totalReleases { + shouldKeep := false + for _, s := range supported { + if r == s { + shouldKeep = true + break + } + } + if shouldKeep { + continue + } + staleManifestDir := path.Join(pacakgesPath, r) + log.Printf("removing stale manifest %v", staleManifestDir) + if err := os.RemoveAll(staleManifestDir); err != nil { + log.Fatal(fmt.Errorf("error deleting dir %v: %w", staleManifestDir, err)) + } + } + return nil +} + +type Releases []string + +type minor int + +type patches []int + +// StablePatchAtTopMinor returns the latest `n` semver2 Minor releases with their latest semver2 Patch. +// For example, if the total releases are 1.121.2, 1.121.1, 1.121.0, 1.120.1, 1.120.0, 1.119.3, 1.119.2, 1.119.1, 1.119.0, 1.118.0, and n is 3, the top 3 stable versions are 1.121.2, 1.120.1, 1.119.3 +func (r Releases) StablePatchAtTopMinor(n int) []string { + minorPatchesMap := map[minor]patches{} + totalMinors := []int{} + for _, release := range r { + v, err := semver.ParseTolerant(release) + if err != nil { + log.Printf("skipping unknown package version %q", release) + } + m := minor(v.Minor) + if _, ok := minorPatchesMap[m]; ok { + minorPatchesMap[m] = append(minorPatchesMap[m], int(v.Patch)) + } else { + totalMinors = append(totalMinors, int(m)) + minorPatchesMap[m] = patches{int(v.Patch)} + } + } + sort.Sort(sort.IntSlice(totalMinors)) + if len(totalMinors) > n { + totalMinors = totalMinors[len(totalMinors)-n:] } - staleManifestDir = path.Join(operatorSrcRoot, "autopilot-channels", "packages", "configconnector", currentVersion.Version) - log.Printf("removing stale manifest %v", staleManifestDir) - if err := os.RemoveAll(staleManifestDir); err != nil { - log.Fatal(fmt.Errorf("error deleting dir %v: %w", staleManifestDir, err)) + supportedVersions := []string{} + for _, m := range totalMinors { + patches := minorPatchesMap[minor(m)] + sort.Sort(sort.IntSlice(patches)) + v := semver.Version{Major: 1, Minor: uint64(m), Patch: uint64(patches[len(patches)-1])} + supportedVersions = append(supportedVersions, v.String()) } + return supportedVersions + } func kustomizeBuild(operatorSrcRoot string) { diff --git a/pkg/clients/generated/apis/bigquery/v1beta1/bigquerydataset_types.go b/pkg/clients/generated/apis/bigquery/v1beta1/bigquerydataset_types.go index 891088e838..8dbbed8674 100644 --- a/pkg/clients/generated/apis/bigquery/v1beta1/bigquerydataset_types.go +++ b/pkg/clients/generated/apis/bigquery/v1beta1/bigquerydataset_types.go @@ -36,93 +36,108 @@ import ( ) type DatasetAccess struct { - /* [Pick one] A grant authorizing all resources of a particular type in a particular dataset access to this dataset. Only views are supported for now. The role field is not required when this field is set. If that dataset is deleted and re-created, its access needs to be granted again via an update operation. */ + /* Grants all resources of particular types in a particular dataset read access to the current dataset. */ // +optional Dataset *DatasetDataset `json:"dataset,omitempty"` - /* [Pick one] A domain to grant access to. Any users signed in with the domain specified will be granted the specified access. Example: "example.com". Maps to IAM policy member "domain:DOMAIN". */ + /* A domain to grant access to. Any users signed in with the + domain specified will be granted the specified access. */ // +optional Domain *string `json:"domain,omitempty"` - /* [Pick one] An email address of a Google Group to grant access to. Maps to IAM policy member "group:GROUP". */ + /* An email address of a Google Group to grant access to. */ // +optional GroupByEmail *string `json:"groupByEmail,omitempty"` - /* [Pick one] Some other type of member that appears in the IAM Policy but isn't a user, group, domain, or special group. */ + /* Some other type of member that appears in the IAM Policy but isn't a user, + group, domain, or special group. For example: 'allUsers'. */ // +optional IamMember *string `json:"iamMember,omitempty"` - /* An IAM role ID that should be granted to the user, group, - or domain specified in this access entry. - The following legacy mappings will be applied: - - * `OWNER`: `roles/bigquery.dataOwner` - * `WRITER`: `roles/bigquery.dataEditor` - * `READER`: `roles/bigquery.dataViewer` - - This field will accept any of the above formats, but will return only - the legacy format. For example, if you set this field to - "roles/bigquery.dataOwner", it will be returned back as "OWNER". */ + /* Describes the rights granted to the user specified by the other + member of the access object. Basic, predefined, and custom roles + are supported. Predefined roles that have equivalent basic roles + are swapped by the API to their basic counterparts. See + [official docs](https://cloud.google.com/bigquery/docs/access-control). */ // +optional Role *string `json:"role,omitempty"` - /* [Pick one] A routine from a different dataset to grant access to. Queries executed against that routine will have read access to views/tables/routines in this dataset. Only UDF is supported for now. The role field is not required when this field is set. If that routine is updated by any user, access to the routine needs to be granted again via an update operation. */ + /* A routine from a different dataset to grant access to. Queries + executed against that routine will have read access to tables in + this dataset. The role field is not required when this field is + set. If that routine is updated by any user, access to the routine + needs to be granted again via an update operation. */ // +optional Routine *DatasetRoutine `json:"routine,omitempty"` - /* [Pick one] A special group to grant access to. Possible values include: + /* A special group to grant access to. Possible values include: + + + * 'projectOwners': Owners of the enclosing project. + - * projectOwners: Owners of the enclosing project. - * projectReaders: Readers of the enclosing project. - * projectWriters: Writers of the enclosing project. - * allAuthenticatedUsers: All authenticated BigQuery users. + * 'projectReaders': Readers of the enclosing project. - Maps to similarly-named IAM members. */ + + * 'projectWriters': Writers of the enclosing project. + + + * 'allAuthenticatedUsers': All authenticated BigQuery users. */ // +optional SpecialGroup *string `json:"specialGroup,omitempty"` - /* [Pick one] An email address of a user to grant access to. For example: fred@example.com. Maps to IAM policy member "user:EMAIL" or "serviceAccount:EMAIL". */ + /* An email address of a user to grant access to. For example: + fred@example.com. */ // +optional UserByEmail *string `json:"userByEmail,omitempty"` - /* [Pick one] A view from a different dataset to grant access to. Queries executed against that view will have read access to views/tables/routines in this dataset. The role field is not required when this field is set. If that view is updated by any user, access to the view needs to be granted again via an update operation. */ + /* A view from a different dataset to grant access to. Queries + executed against that view will have read access to tables in + this dataset. The role field is not required when this field is + set. If that view is updated by any user, access to the view + needs to be granted again via an update operation. */ // +optional View *DatasetView `json:"view,omitempty"` } type DatasetDataset struct { - /* Required. A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters. */ + /* The ID of the dataset containing this table. */ DatasetId string `json:"datasetId"` - /* Required. The ID of the project containing this dataset. */ + /* The ID of the project containing this table. */ ProjectId string `json:"projectId"` } type DatasetDefaultEncryptionConfiguration struct { - /* Optional. Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key. */ - // +optional - KmsKeyRef *v1alpha1.ResourceRef `json:"kmsKeyRef,omitempty"` + /* Describes the Cloud KMS encryption key that will be used to protect destination + BigQuery table. The BigQuery Service Account associated with your project requires + access to this encryption key. */ + KmsKeyRef v1alpha1.ResourceRef `json:"kmsKeyRef"` } type DatasetRoutine struct { - /* Required. The ID of the dataset containing this routine. */ + /* The ID of the dataset containing this table. */ DatasetId string `json:"datasetId"` - /* Required. The ID of the project containing this routine. */ + /* The ID of the project containing this table. */ ProjectId string `json:"projectId"` - /* Required. The ID of the routine. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 256 characters. */ + /* The ID of the routine. The ID must contain only letters (a-z, + A-Z), numbers (0-9), or underscores (_). The maximum length + is 256 characters. */ RoutineId string `json:"routineId"` } type DatasetView struct { - /* Required. The ID of the dataset containing this table. */ + /* The ID of the dataset containing this table. */ DatasetId string `json:"datasetId"` - /* Required. The ID of the project containing this table. */ + /* The ID of the project containing this table. */ ProjectId string `json:"projectId"` - /* Required. The ID of the table. The ID can contain Unicode characters in category L (letter), M (mark), N (number), Pc (connector, including underscore), Pd (dash), and Zs (space). For more information, see [General Category](https://wikipedia.org/wiki/Unicode_character_property#General_Category). The maximum length is 1,024 characters. Certain operations allow suffixing of the table ID with a partition decorator, such as `sample_table$20190123`. */ + /* The ID of the table. The ID must contain only letters (a-z, + A-Z), numbers (0-9), or underscores (_). The maximum length + is 1,024 characters. */ TableId string `json:"tableId"` } @@ -131,70 +146,105 @@ type BigQueryDatasetSpec struct { // +optional Access []DatasetAccess `json:"access,omitempty"` - /* Optional. Defines the default collation specification of future tables - created in the dataset. If a table is created in this dataset without - table-level default collation, then the table inherits the dataset default - collation, which is applied to the string fields that do not have explicit - collation specified. A change to this field affects only tables created - afterwards, and does not alter the existing tables. - The following values are supported: + /* Defines the default collation specification of future tables created + in the dataset. If a table is created in this dataset without table-level + default collation, then the table inherits the dataset default collation, + which is applied to the string fields that do not have explicit collation + specified. A change to this field affects only tables created afterwards, + and does not alter the existing tables. - * 'und:ci': undetermined locale, case insensitive. - * '': empty string. Default to case-sensitive behavior. */ + The following values are supported: + - 'und:ci': undetermined locale, case insensitive. + - '': empty string. Default to case-sensitive behavior. */ // +optional DefaultCollation *string `json:"defaultCollation,omitempty"` - /* The default encryption key for all tables in the dataset. After this property is set, the encryption key of all newly-created tables in the dataset is set to this value unless the table creation request or query explicitly overrides the key. */ + /* The default encryption key for all tables in the dataset. Once this property is set, + all newly-created partitioned tables in the dataset will have encryption key set to + this value, unless table creation request (or query) overrides the key. */ // +optional DefaultEncryptionConfiguration *DatasetDefaultEncryptionConfiguration `json:"defaultEncryptionConfiguration,omitempty"` - /* This default partition expiration, expressed in milliseconds. - - When new time-partitioned tables are created in a dataset where this - property is set, the table will inherit this value, propagated as the - `TimePartitioning.expirationMs` property on the new table. If you set - `TimePartitioning.expirationMs` explicitly when creating a table, - the `defaultPartitionExpirationMs` of the containing dataset is ignored. - - When creating a partitioned table, if `defaultPartitionExpirationMs` - is set, the `defaultTableExpirationMs` value is ignored and the table - will not be inherit a table expiration deadline. */ + /* The default partition expiration for all partitioned tables in + the dataset, in milliseconds. + + + Once this property is set, all newly-created partitioned tables in + the dataset will have an 'expirationMs' property in the 'timePartitioning' + settings set to this value, and changing the value will only + affect new tables, not existing ones. The storage in a partition will + have an expiration time of its partition time plus this value. + Setting this property overrides the use of 'defaultTableExpirationMs' + for partitioned tables: only one of 'defaultTableExpirationMs' and + 'defaultPartitionExpirationMs' will be used for any new partitioned + table. If you provide an explicit 'timePartitioning.expirationMs' when + creating or updating a partitioned table, that value takes precedence + over the default partition expiration time indicated by this property. */ // +optional DefaultPartitionExpirationMs *int64 `json:"defaultPartitionExpirationMs,omitempty"` - /* Optional. The default lifetime of all tables in the dataset, in milliseconds. The minimum lifetime value is 3600000 milliseconds (one hour). To clear an existing default expiration with a PATCH request, set to 0. Once this property is set, all newly-created tables in the dataset will have an expirationTime property set to the creation time plus the value in this property, and changing the value will only affect new tables, not existing ones. When the expirationTime for a given table is reached, that table will be deleted automatically. If a table's expirationTime is modified or removed before the table expires, or if you provide an explicit expirationTime when creating a table, that value takes precedence over the default expiration time indicated by this property. */ + /* The default lifetime of all tables in the dataset, in milliseconds. + The minimum value is 3600000 milliseconds (one hour). + + + Once this property is set, all newly-created tables in the dataset + will have an 'expirationTime' property set to the creation time plus + the value in this property, and changing the value will only affect + new tables, not existing ones. When the 'expirationTime' for a given + table is reached, that table will be deleted automatically. + If a table's 'expirationTime' is modified or removed before the + table expires, or if you provide an explicit 'expirationTime' when + creating a table, that value takes precedence over the default + expiration time indicated by this property. */ // +optional DefaultTableExpirationMs *int64 `json:"defaultTableExpirationMs,omitempty"` - /* Optional. A user-friendly description of the dataset. */ + /* A user-friendly description of the dataset. */ // +optional Description *string `json:"description,omitempty"` - /* Optional. A descriptive name for the dataset. */ + /* A descriptive name for the dataset. */ // +optional FriendlyName *string `json:"friendlyName,omitempty"` - /* Optional. TRUE if the dataset and its table names are case-insensitive, otherwise FALSE. By default, this is FALSE, which means the dataset and its table names are case-sensitive. This field does not affect routine references. */ + /* TRUE if the dataset and its table names are case-insensitive, otherwise FALSE. + By default, this is FALSE, which means the dataset and its table names are + case-sensitive. This field does not affect routine references. */ // +optional IsCaseInsensitive *bool `json:"isCaseInsensitive,omitempty"` - /* The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations. */ + /* Immutable. The geographic location where the dataset should reside. + See [official docs](https://cloud.google.com/bigquery/docs/dataset-locations). + + + There are two types of locations, regional or multi-regional. A regional + location is a specific geographic place, such as Tokyo, and a multi-regional + location is a large geographic area, such as the United States, that + contains at least two geographic places. + + + The default value is multi-regional location 'US'. + Changing this forces a new resource to be created. */ // +optional Location *string `json:"location,omitempty"` - /* Optional. Defines the time travel window in hours. The value can be from 48 to 168 hours (2 to 7 days). The default value is 168 hours if this is not set. */ + /* Defines the time travel window in hours. The value can be from 48 to 168 hours (2 to 7 days). */ // +optional MaxTimeTravelHours *string `json:"maxTimeTravelHours,omitempty"` - /* The project that this resource belongs to. optional. */ + /* The project that this resource belongs to. */ // +optional ProjectRef *v1alpha1.ResourceRef `json:"projectRef,omitempty"` - /* The BigQueryDataset name. If not given, the metadata.name will be used. */ + /* Immutable. Optional. The datasetId of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default. */ // +optional ResourceID *string `json:"resourceID,omitempty"` - /* Optional. Updates storage_billing_model for the dataset. */ + /* Specifies the storage billing model for the dataset. + Set this flag value to LOGICAL to use logical bytes for storage billing, + or to PHYSICAL to use physical bytes instead. + + LOGICAL is the default if this flag isn't specified. */ // +optional StorageBillingModel *string `json:"storageBillingModel,omitempty"` } @@ -203,15 +253,17 @@ type BigQueryDatasetStatus struct { /* Conditions represent the latest available observations of the BigQueryDataset's current state. */ Conditions []v1alpha1.Condition `json:"conditions,omitempty"` - /* Output only. The time when this dataset was created, in milliseconds since the epoch. */ + /* The time when this dataset was created, in milliseconds since the + epoch. */ // +optional CreationTime *int64 `json:"creationTime,omitempty"` - /* Output only. A hash of the resource. */ + /* A hash of the resource. */ // +optional Etag *string `json:"etag,omitempty"` - /* Output only. The date when this dataset was last modified, in milliseconds since the epoch. */ + /* The date when this dataset or any of its tables was last modified, in + milliseconds since the epoch. */ // +optional LastModifiedTime *int64 `json:"lastModifiedTime,omitempty"` @@ -219,7 +271,6 @@ type BigQueryDatasetStatus struct { // +optional ObservedGeneration *int64 `json:"observedGeneration,omitempty"` - /* Output only. A URL that can be used to access the resource again. You can use this URL in Get or Update requests to the resource. */ // +optional SelfLink *string `json:"selfLink,omitempty"` } diff --git a/pkg/clients/generated/apis/bigquery/v1beta1/zz_generated.deepcopy.go b/pkg/clients/generated/apis/bigquery/v1beta1/zz_generated.deepcopy.go index ff2aa02203..6a5b89a386 100644 --- a/pkg/clients/generated/apis/bigquery/v1beta1/zz_generated.deepcopy.go +++ b/pkg/clients/generated/apis/bigquery/v1beta1/zz_generated.deepcopy.go @@ -108,7 +108,7 @@ func (in *BigQueryDatasetSpec) DeepCopyInto(out *BigQueryDatasetSpec) { if in.DefaultEncryptionConfiguration != nil { in, out := &in.DefaultEncryptionConfiguration, &out.DefaultEncryptionConfiguration *out = new(DatasetDefaultEncryptionConfiguration) - (*in).DeepCopyInto(*out) + **out = **in } if in.DefaultPartitionExpirationMs != nil { in, out := &in.DefaultPartitionExpirationMs, &out.DefaultPartitionExpirationMs @@ -840,11 +840,7 @@ func (in *DatasetDataset) DeepCopy() *DatasetDataset { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DatasetDefaultEncryptionConfiguration) DeepCopyInto(out *DatasetDefaultEncryptionConfiguration) { *out = *in - if in.KmsKeyRef != nil { - in, out := &in.KmsKeyRef, &out.KmsKeyRef - *out = new(v1alpha1.ResourceRef) - **out = **in - } + out.KmsKeyRef = in.KmsKeyRef return } diff --git a/pkg/clients/generated/apis/bigqueryconnection/v1alpha1/bigqueryconnectionconnection_types.go b/pkg/clients/generated/apis/bigqueryconnection/v1alpha1/bigqueryconnectionconnection_types.go index 5f76f28d05..e6f571da78 100644 --- a/pkg/clients/generated/apis/bigqueryconnection/v1alpha1/bigqueryconnectionconnection_types.go +++ b/pkg/clients/generated/apis/bigqueryconnection/v1alpha1/bigqueryconnectionconnection_types.go @@ -36,71 +36,78 @@ import ( ) type ConnectionCloudResource struct { - /* The account ID of the service created for the purpose of this connection. */ - // +optional - ServiceAccountId *string `json:"serviceAccountId,omitempty"` } type BigQueryConnectionConnectionSpec struct { - /* Container for connection properties for delegation of access to GCP resources. */ + /* Use Cloud Resource properties. */ // +optional CloudResource *ConnectionCloudResource `json:"cloudResource,omitempty"` - /* A descriptive description for the connection. */ + /* User provided description. */ // +optional Description *string `json:"description,omitempty"` - /* A descriptive name for the connection. */ + /* User provided display name for the connection. */ // +optional FriendlyName *string `json:"friendlyName,omitempty"` - /* Immutable. The geographic location where the connection should reside. - Cloud SQL instance must be in the same location as the connection - with following exceptions: Cloud SQL us-central1 maps to BigQuery US, Cloud SQL europe-west1 maps to BigQuery EU. - Examples: US, EU, asia-northeast1, us-central1, europe-west1. - Spanner Connections same as spanner region - AWS allowed regions are aws-us-east-1 - Azure allowed regions are azure-eastus2. */ + /* Immutable. */ Location string `json:"location"` - /* The project that this resource belongs to. */ + /* The Project that this resource belongs to. */ ProjectRef v1alpha1.ResourceRef `json:"projectRef"` - /* Immutable. Optional. The connectionId of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default. */ + /* The BigQuery ConnectionID. This is a server-generated ID in the UUID format. If not provided, ConfigConnector will create a new Connection and store the UUID in `status.serviceGeneratedID` field. */ // +optional ResourceID *string `json:"resourceID,omitempty"` } type ConnectionCloudResourceStatus struct { - /* The account ID of the service created for the purpose of this connection. */ + /* Output only. The account ID of the service created for the purpose of this + connection. + + The service account does not have any permissions associated with it + when it is created. After creation, customers delegate permissions + to the service account. When the connection is used in the context of an + operation in BigQuery, the service account will be used to connect to the + desired resources in GCP. + + The account ID is in the form of: + @gcp-sa-bigquery-cloudresource.iam.gserviceaccount.com */ // +optional - ServiceAccountId *string `json:"serviceAccountId,omitempty"` + ServiceAccountID *string `json:"serviceAccountID,omitempty"` } type ConnectionObservedStateStatus struct { - /* Container for connection properties for delegation of access to GCP resources. */ // +optional CloudResource *ConnectionCloudResourceStatus `json:"cloudResource,omitempty"` + + /* The description for the connection. */ + // +optional + Description *string `json:"description,omitempty"` + + /* The display name for the connection. */ + // +optional + FriendlyName *string `json:"friendlyName,omitempty"` + + /* Output only. True, if credential is configured for this connection. */ + // +optional + HasCredential *bool `json:"hasCredential,omitempty"` } type BigQueryConnectionConnectionStatus struct { /* Conditions represent the latest available observations of the BigQueryConnectionConnection's current state. */ Conditions []v1alpha1.Condition `json:"conditions,omitempty"` - /* True if the connection has credential assigned. */ - // +optional - HasCredential *bool `json:"hasCredential,omitempty"` - - /* The resource name of the connection in the form of: - "projects/{project_id}/locations/{location_id}/connections/{connectionId}". */ + /* A unique specifier for the BigQueryConnectionConnection resource in GCP. */ // +optional - Name *string `json:"name,omitempty"` + ExternalRef *string `json:"externalRef,omitempty"` /* ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. */ // +optional ObservedGeneration *int64 `json:"observedGeneration,omitempty"` - /* The observed state of the underlying GCP resource. */ + /* ObservedState is the state of the resource as most recently observed in GCP. */ // +optional ObservedState *ConnectionObservedStateStatus `json:"observedState,omitempty"` } @@ -109,7 +116,7 @@ type BigQueryConnectionConnectionStatus struct { // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +kubebuilder:resource:categories=gcp,shortName=gcpbigqueryconnectionconnection;gcpbigqueryconnectionconnections // +kubebuilder:subresource:status -// +kubebuilder:metadata:labels="cnrm.cloud.google.com/managed-by-kcc=true";"cnrm.cloud.google.com/stability-level=alpha";"cnrm.cloud.google.com/system=true";"cnrm.cloud.google.com/tf2crd=true" +// +kubebuilder:metadata:labels="cnrm.cloud.google.com/managed-by-kcc=true";"cnrm.cloud.google.com/system=true" // +kubebuilder:printcolumn:name="Age",JSONPath=".metadata.creationTimestamp",type="date" // +kubebuilder:printcolumn:name="Ready",JSONPath=".status.conditions[?(@.type=='Ready')].status",type="string",description="When 'True', the most recent reconcile of the resource succeeded" // +kubebuilder:printcolumn:name="Status",JSONPath=".status.conditions[?(@.type=='Ready')].reason",type="string",description="The reason for the value in 'Ready'" diff --git a/pkg/clients/generated/apis/bigqueryconnection/v1alpha1/zz_generated.deepcopy.go b/pkg/clients/generated/apis/bigqueryconnection/v1alpha1/zz_generated.deepcopy.go index e8e91c8cc5..f0d93e16c7 100644 --- a/pkg/clients/generated/apis/bigqueryconnection/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/clients/generated/apis/bigqueryconnection/v1alpha1/zz_generated.deepcopy.go @@ -96,7 +96,7 @@ func (in *BigQueryConnectionConnectionSpec) DeepCopyInto(out *BigQueryConnection if in.CloudResource != nil { in, out := &in.CloudResource, &out.CloudResource *out = new(ConnectionCloudResource) - (*in).DeepCopyInto(*out) + **out = **in } if in.Description != nil { in, out := &in.Description, &out.Description @@ -135,13 +135,8 @@ func (in *BigQueryConnectionConnectionStatus) DeepCopyInto(out *BigQueryConnecti *out = make([]k8sv1alpha1.Condition, len(*in)) copy(*out, *in) } - if in.HasCredential != nil { - in, out := &in.HasCredential, &out.HasCredential - *out = new(bool) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name + if in.ExternalRef != nil { + in, out := &in.ExternalRef, &out.ExternalRef *out = new(string) **out = **in } @@ -171,11 +166,6 @@ func (in *BigQueryConnectionConnectionStatus) DeepCopy() *BigQueryConnectionConn // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ConnectionCloudResource) DeepCopyInto(out *ConnectionCloudResource) { *out = *in - if in.ServiceAccountId != nil { - in, out := &in.ServiceAccountId, &out.ServiceAccountId - *out = new(string) - **out = **in - } return } @@ -192,8 +182,8 @@ func (in *ConnectionCloudResource) DeepCopy() *ConnectionCloudResource { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ConnectionCloudResourceStatus) DeepCopyInto(out *ConnectionCloudResourceStatus) { *out = *in - if in.ServiceAccountId != nil { - in, out := &in.ServiceAccountId, &out.ServiceAccountId + if in.ServiceAccountID != nil { + in, out := &in.ServiceAccountID, &out.ServiceAccountID *out = new(string) **out = **in } @@ -218,6 +208,21 @@ func (in *ConnectionObservedStateStatus) DeepCopyInto(out *ConnectionObservedSta *out = new(ConnectionCloudResourceStatus) (*in).DeepCopyInto(*out) } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.FriendlyName != nil { + in, out := &in.FriendlyName, &out.FriendlyName + *out = new(string) + **out = **in + } + if in.HasCredential != nil { + in, out := &in.HasCredential, &out.HasCredential + *out = new(bool) + **out = **in + } return } diff --git a/pkg/clients/generated/apis/certificatemanager/v1beta1/certificatemanagerdnsauthorization_types.go b/pkg/clients/generated/apis/certificatemanager/v1beta1/certificatemanagerdnsauthorization_types.go index 27c46671f2..6f8ae9ae92 100644 --- a/pkg/clients/generated/apis/certificatemanager/v1beta1/certificatemanagerdnsauthorization_types.go +++ b/pkg/clients/generated/apis/certificatemanager/v1beta1/certificatemanagerdnsauthorization_types.go @@ -40,9 +40,7 @@ type CertificateManagerDNSAuthorizationSpec struct { // +optional Description *string `json:"description,omitempty"` - /* Immutable. A domain which is being authorized. A DnsAuthorization resource covers a - single domain and its wildcard, e.g. authorization for "example.com" can - be used to issue certificates for "example.com" and "*.example.com". */ + /* Immutable. A domain which is being authorized. A DnsAuthorization resource covers a single domain and its wildcard, e.g. authorization for "example.com" can be used to issue certificates for "example.com" and "*.example.com". */ Domain string `json:"domain"` /* The project that this resource belongs to. */ @@ -58,8 +56,7 @@ type DnsauthorizationDnsResourceRecordStatus struct { // +optional Data *string `json:"data,omitempty"` - /* Fully qualified name of the DNS Resource Record. - E.g. '_acme-challenge.example.com'. */ + /* Fully qualified name of the DNS Resource Record. E.g. '_acme-challenge.example.com'. */ // +optional Name *string `json:"name,omitempty"` @@ -72,9 +69,7 @@ type CertificateManagerDNSAuthorizationStatus struct { /* Conditions represent the latest available observations of the CertificateManagerDNSAuthorization's current state. */ Conditions []v1alpha1.Condition `json:"conditions,omitempty"` - /* The structure describing the DNS Resource Record that needs to be added - to DNS configuration for the authorization to be usable by - certificate. */ + /* The structure describing the DNS Resource Record that needs to be added to DNS configuration for the authorization to be usable by certificate. */ // +optional DnsResourceRecord []DnsauthorizationDnsResourceRecordStatus `json:"dnsResourceRecord,omitempty"` diff --git a/pkg/clients/generated/apis/compute/v1beta1/computeforwardingrule_types.go b/pkg/clients/generated/apis/compute/v1beta1/computeforwardingrule_types.go index ab48a31e93..55a6eaac91 100644 --- a/pkg/clients/generated/apis/compute/v1beta1/computeforwardingrule_types.go +++ b/pkg/clients/generated/apis/compute/v1beta1/computeforwardingrule_types.go @@ -36,12 +36,10 @@ import ( ) type ForwardingruleFilterLabels struct { - /* Immutable. Name of the metadata label. The length must be between - 1 and 1024 characters, inclusive. */ + /* Immutable. Name of the metadata label. The length must be between 1 and 1024 characters, inclusive. */ Name string `json:"name"` - /* Immutable. The value that the label must match. The value has a maximum - length of 1024 characters. */ + /* Immutable. The value that the label must match. The value has a maximum length of 1024 characters. */ Value string `json:"value"` } @@ -138,13 +136,11 @@ type ComputeForwardingRuleSpec struct { // +optional AllowPscGlobalAccess *bool `json:"allowPscGlobalAccess,omitempty"` - /* A ComputeBackendService to receive the matched traffic. This is - used only for internal load balancing. */ + /* A ComputeBackendService to receive the matched traffic. This is used only for internal load balancing. */ // +optional BackendServiceRef *v1alpha1.ResourceRef `json:"backendServiceRef,omitempty"` - /* Immutable. An optional description of this resource. Provide this property when - you create the resource. */ + /* Immutable. An optional description of this resource. Provide this property when you create the resource. */ // +optional Description *string `json:"description,omitempty"` @@ -234,10 +230,7 @@ type ComputeForwardingRuleSpec struct { // +optional MetadataFilters []ForwardingruleMetadataFilters `json:"metadataFilters,omitempty"` - /* This field is not used for external load balancing. For internal - load balancing, this field identifies the network that the load - balanced IP should belong to for this forwarding rule. If this - field is not specified, the default network will be used. */ + /* This field is not used for external load balancing. For internal load balancing, this field identifies the network that the load balanced IP should belong to for this forwarding rule. If this field is not specified, the default network will be used. */ // +optional NetworkRef *v1alpha1.ResourceRef `json:"networkRef,omitempty"` @@ -269,7 +262,6 @@ type ComputeForwardingRuleSpec struct { [port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications) for details. - Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. @@ -291,7 +283,6 @@ type ComputeForwardingRuleSpec struct { * By internal TCP/UDP load balancers, backend service-based network load balancers, internal protocol forwarding and when protocol is not L3_DEFAULT. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. Only packets addressed to these ports will be forwarded to the backends configured with this @@ -348,10 +339,7 @@ type ComputeForwardingRuleSpec struct { // +optional SubnetworkRef *v1alpha1.ResourceRef `json:"subnetworkRef,omitempty"` - /* The target resource to receive the matched traffic. The forwarded - traffic must be of a type appropriate to the target object. For - INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets - are valid. */ + /* The target resource to receive the matched traffic. The forwarded traffic must be of a type appropriate to the target object. For INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets are valid. */ // +optional Target *ForwardingruleTarget `json:"target,omitempty"` } @@ -368,8 +356,11 @@ type ComputeForwardingRuleStatus struct { // +optional CreationTimestamp *string `json:"creationTimestamp,omitempty"` - /* The fingerprint used for optimistic locking of this resource. Used - internally during updates. */ + /* A unique Config Connector specifier for the resource in GCP. */ + // +optional + ExternalRef *string `json:"externalRef,omitempty"` + + /* The fingerprint used for optimistic locking of this resource. Used internally during updates. */ // +optional LabelFingerprint *string `json:"labelFingerprint,omitempty"` diff --git a/pkg/clients/generated/apis/compute/v1beta1/zz_generated.deepcopy.go b/pkg/clients/generated/apis/compute/v1beta1/zz_generated.deepcopy.go index 75c3d39b19..1474a71b61 100644 --- a/pkg/clients/generated/apis/compute/v1beta1/zz_generated.deepcopy.go +++ b/pkg/clients/generated/apis/compute/v1beta1/zz_generated.deepcopy.go @@ -2842,6 +2842,11 @@ func (in *ComputeForwardingRuleStatus) DeepCopyInto(out *ComputeForwardingRuleSt *out = new(string) **out = **in } + if in.ExternalRef != nil { + in, out := &in.ExternalRef, &out.ExternalRef + *out = new(string) + **out = **in + } if in.LabelFingerprint != nil { in, out := &in.LabelFingerprint, &out.LabelFingerprint *out = new(string) diff --git a/pkg/clients/generated/apis/securesourcemanager/v1alpha1/doc.go b/pkg/clients/generated/apis/firestore/v1alpha1/doc.go similarity index 86% rename from pkg/clients/generated/apis/securesourcemanager/v1alpha1/doc.go rename to pkg/clients/generated/apis/firestore/v1alpha1/doc.go index bc024fb218..e396930ac6 100644 --- a/pkg/clients/generated/apis/securesourcemanager/v1alpha1/doc.go +++ b/pkg/clients/generated/apis/firestore/v1alpha1/doc.go @@ -28,11 +28,11 @@ // that future versions of the go-client may include breaking changes. // Please try it out and give us feedback! -// Package v1alpha1 contains API Schema definitions for the securesourcemanager v1alpha1 API group. +// Package v1alpha1 contains API Schema definitions for the firestore v1alpha1 API group. // +k8s:openapi-gen=true // +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/pkg/apis/securesourcemanager +// +k8s:conversion-gen=github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/pkg/apis/firestore // +k8s:defaulter-gen=TypeMeta -// +groupName=securesourcemanager.cnrm.cloud.google.com +// +groupName=firestore.cnrm.cloud.google.com package v1alpha1 diff --git a/pkg/clients/generated/apis/firestore/v1alpha1/firestoredatabase_types.go b/pkg/clients/generated/apis/firestore/v1alpha1/firestoredatabase_types.go new file mode 100644 index 0000000000..03bb3ddfe4 --- /dev/null +++ b/pkg/clients/generated/apis/firestore/v1alpha1/firestoredatabase_types.go @@ -0,0 +1,159 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// ---------------------------------------------------------------------------- +// +// *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** +// +// ---------------------------------------------------------------------------- +// +// This file is automatically generated by Config Connector and manual +// changes will be clobbered when the file is regenerated. +// +// ---------------------------------------------------------------------------- + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +package v1alpha1 + +import ( + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/k8s/v1alpha1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +type FirestoreDatabaseSpec struct { + /* The concurrency control mode to use for this database. See https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases#concurrencymode for more info. */ + // +optional + ConcurrencyMode *string `json:"concurrencyMode,omitempty"` + + /* The location of the database. Available locations are listed at https://cloud.google.com/firestore/docs/locations. */ + // +optional + LocationID *string `json:"locationID,omitempty"` + + /* Whether to enable the PITR feature on this database. See https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases#pointintimerecoveryenablement for more info. */ + // +optional + PointInTimeRecoveryEnablement *string `json:"pointInTimeRecoveryEnablement,omitempty"` + + /* Immutable. The Project that this resource belongs to. */ + ProjectRef v1alpha1.ResourceRef `json:"projectRef"` + + /* The FirestoreDatabase name. If not given, the metadata.name will be used. */ + // +optional + ResourceID *string `json:"resourceID,omitempty"` +} + +type DatabaseObservedStateStatus struct { + /* Output only. The timestamp at which this database was created. Databases created before 2016 do not populate create_time. */ + // +optional + CreateTime *string `json:"createTime,omitempty"` + + /* Output only. The earliest timestamp at which older versions of the data can + be read from the database. See [version_retention_period] above; this field + is populated with `now - version_retention_period`. + + This value is continuously updated, and becomes stale the moment it is + queried. If you are using this value to recover data, make sure to account + for the time from the moment when the value is queried to the moment when + you initiate the recovery. */ + // +optional + EarliestVersionTime *string `json:"earliestVersionTime,omitempty"` + + /* This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. */ + // +optional + Etag *string `json:"etag,omitempty"` + + /* Output only. The key_prefix for this database. This key_prefix is used, in + combination with the project id ("~") to construct + the application id that is returned from the Cloud Datastore APIs in Google + App Engine first generation runtimes. + + This value may be empty in which case the appid to use for URL-encoded keys + is the project_id (eg: foo instead of v~foo). */ + // +optional + KeyPrefix *string `json:"keyPrefix,omitempty"` + + /* Output only. The system-generated UUID4 for this Database. */ + // +optional + Uid *string `json:"uid,omitempty"` + + /* Output only. The timestamp at which this database was most recently updated. Note this only includes updates to the database resource and not data contained by the database. */ + // +optional + UpdateTime *string `json:"updateTime,omitempty"` + + /* Output only. The period during which past versions of data are retained in + the database. + + Any [read][google.firestore.v1.GetDocumentRequest.read_time] + or [query][google.firestore.v1.ListDocumentsRequest.read_time] can specify + a `read_time` within this window, and will read the state of the database + at that time. + + If the PITR feature is enabled, the retention period is 7 days. Otherwise, + the retention period is 1 hour. */ + // +optional + VersionRetentionPeriod *string `json:"versionRetentionPeriod,omitempty"` +} + +type FirestoreDatabaseStatus struct { + /* Conditions represent the latest available observations of the + FirestoreDatabase's current state. */ + Conditions []v1alpha1.Condition `json:"conditions,omitempty"` + /* A unique specifier for the FirestoreDatabase resource in GCP. */ + // +optional + ExternalRef *string `json:"externalRef,omitempty"` + + /* ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. */ + // +optional + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + + /* ObservedState is the state of the resource as most recently observed in GCP. */ + // +optional + ObservedState *DatabaseObservedStateStatus `json:"observedState,omitempty"` +} + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:resource:categories=gcp,shortName= +// +kubebuilder:subresource:status +// +kubebuilder:metadata:labels="cnrm.cloud.google.com/managed-by-kcc=true";"cnrm.cloud.google.com/system=true" +// +kubebuilder:printcolumn:name="Age",JSONPath=".metadata.creationTimestamp",type="date" +// +kubebuilder:printcolumn:name="Ready",JSONPath=".status.conditions[?(@.type=='Ready')].status",type="string",description="When 'True', the most recent reconcile of the resource succeeded" +// +kubebuilder:printcolumn:name="Status",JSONPath=".status.conditions[?(@.type=='Ready')].reason",type="string",description="The reason for the value in 'Ready'" +// +kubebuilder:printcolumn:name="Status Age",JSONPath=".status.conditions[?(@.type=='Ready')].lastTransitionTime",type="date",description="The last transition time for the value in 'Status'" + +// FirestoreDatabase is the Schema for the firestore API +// +k8s:openapi-gen=true +type FirestoreDatabase struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec FirestoreDatabaseSpec `json:"spec,omitempty"` + Status FirestoreDatabaseStatus `json:"status,omitempty"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// FirestoreDatabaseList contains a list of FirestoreDatabase +type FirestoreDatabaseList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []FirestoreDatabase `json:"items"` +} + +func init() { + SchemeBuilder.Register(&FirestoreDatabase{}, &FirestoreDatabaseList{}) +} diff --git a/pkg/clients/generated/apis/securesourcemanager/v1alpha1/register.go b/pkg/clients/generated/apis/firestore/v1alpha1/register.go similarity index 79% rename from pkg/clients/generated/apis/securesourcemanager/v1alpha1/register.go rename to pkg/clients/generated/apis/firestore/v1alpha1/register.go index 4a6331cf28..b5d3323aa5 100644 --- a/pkg/clients/generated/apis/securesourcemanager/v1alpha1/register.go +++ b/pkg/clients/generated/apis/firestore/v1alpha1/register.go @@ -28,12 +28,12 @@ // that future versions of the go-client may include breaking changes. // Please try it out and give us feedback! -// Package v1alpha1 contains API Schema definitions for the securesourcemanager v1alpha1 API group. +// Package v1alpha1 contains API Schema definitions for the firestore v1alpha1 API group. // +k8s:openapi-gen=true // +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/pkg/apis/securesourcemanager +// +k8s:conversion-gen=github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/pkg/apis/firestore // +k8s:defaulter-gen=TypeMeta -// +groupName=securesourcemanager.cnrm.cloud.google.com +// +groupName=firestore.cnrm.cloud.google.com package v1alpha1 import ( @@ -45,7 +45,7 @@ import ( var ( // SchemeGroupVersion is the group version used to register these objects. - SchemeGroupVersion = schema.GroupVersion{Group: "securesourcemanager.cnrm.cloud.google.com", Version: "v1alpha1"} + SchemeGroupVersion = schema.GroupVersion{Group: "firestore.cnrm.cloud.google.com", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme. SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} @@ -53,11 +53,11 @@ var ( // AddToScheme is a global function that registers this API group & version to a scheme AddToScheme = SchemeBuilder.AddToScheme - SecureSourceManagerInstanceGVK = schema.GroupVersionKind{ + FirestoreDatabaseGVK = schema.GroupVersionKind{ Group: SchemeGroupVersion.Group, Version: SchemeGroupVersion.Version, - Kind: reflect.TypeOf(SecureSourceManagerInstance{}).Name(), + Kind: reflect.TypeOf(FirestoreDatabase{}).Name(), } - securesourcemanagerAPIVersion = SchemeGroupVersion.String() + firestoreAPIVersion = SchemeGroupVersion.String() ) diff --git a/pkg/clients/generated/apis/securesourcemanager/v1alpha1/zz_generated.deepcopy.go b/pkg/clients/generated/apis/firestore/v1alpha1/zz_generated.deepcopy.go similarity index 60% rename from pkg/clients/generated/apis/securesourcemanager/v1alpha1/zz_generated.deepcopy.go rename to pkg/clients/generated/apis/firestore/v1alpha1/zz_generated.deepcopy.go index fb794e533d..b21b1a5233 100644 --- a/pkg/clients/generated/apis/securesourcemanager/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/clients/generated/apis/firestore/v1alpha1/zz_generated.deepcopy.go @@ -30,74 +30,58 @@ import ( ) // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *InstanceHostConfigStatus) DeepCopyInto(out *InstanceHostConfigStatus) { +func (in *DatabaseObservedStateStatus) DeepCopyInto(out *DatabaseObservedStateStatus) { *out = *in - if in.Api != nil { - in, out := &in.Api, &out.Api + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime *out = new(string) **out = **in } - if in.GitHTTP != nil { - in, out := &in.GitHTTP, &out.GitHTTP + if in.EarliestVersionTime != nil { + in, out := &in.EarliestVersionTime, &out.EarliestVersionTime *out = new(string) **out = **in } - if in.GitSSH != nil { - in, out := &in.GitSSH, &out.GitSSH + if in.Etag != nil { + in, out := &in.Etag, &out.Etag *out = new(string) **out = **in } - if in.Html != nil { - in, out := &in.Html, &out.Html + if in.KeyPrefix != nil { + in, out := &in.KeyPrefix, &out.KeyPrefix *out = new(string) **out = **in } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceHostConfigStatus. -func (in *InstanceHostConfigStatus) DeepCopy() *InstanceHostConfigStatus { - if in == nil { - return nil - } - out := new(InstanceHostConfigStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *InstanceObservedStateStatus) DeepCopyInto(out *InstanceObservedStateStatus) { - *out = *in - if in.HostConfig != nil { - in, out := &in.HostConfig, &out.HostConfig - *out = new(InstanceHostConfigStatus) - (*in).DeepCopyInto(*out) + if in.Uid != nil { + in, out := &in.Uid, &out.Uid + *out = new(string) + **out = **in } - if in.State != nil { - in, out := &in.State, &out.State + if in.UpdateTime != nil { + in, out := &in.UpdateTime, &out.UpdateTime *out = new(string) **out = **in } - if in.StateNote != nil { - in, out := &in.StateNote, &out.StateNote + if in.VersionRetentionPeriod != nil { + in, out := &in.VersionRetentionPeriod, &out.VersionRetentionPeriod *out = new(string) **out = **in } return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceObservedStateStatus. -func (in *InstanceObservedStateStatus) DeepCopy() *InstanceObservedStateStatus { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseObservedStateStatus. +func (in *DatabaseObservedStateStatus) DeepCopy() *DatabaseObservedStateStatus { if in == nil { return nil } - out := new(InstanceObservedStateStatus) + out := new(DatabaseObservedStateStatus) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SecureSourceManagerInstance) DeepCopyInto(out *SecureSourceManagerInstance) { +func (in *FirestoreDatabase) DeepCopyInto(out *FirestoreDatabase) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) @@ -106,18 +90,18 @@ func (in *SecureSourceManagerInstance) DeepCopyInto(out *SecureSourceManagerInst return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecureSourceManagerInstance. -func (in *SecureSourceManagerInstance) DeepCopy() *SecureSourceManagerInstance { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirestoreDatabase. +func (in *FirestoreDatabase) DeepCopy() *FirestoreDatabase { if in == nil { return nil } - out := new(SecureSourceManagerInstance) + out := new(FirestoreDatabase) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *SecureSourceManagerInstance) DeepCopyObject() runtime.Object { +func (in *FirestoreDatabase) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -125,13 +109,13 @@ func (in *SecureSourceManagerInstance) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SecureSourceManagerInstanceList) DeepCopyInto(out *SecureSourceManagerInstanceList) { +func (in *FirestoreDatabaseList) DeepCopyInto(out *FirestoreDatabaseList) { *out = *in out.TypeMeta = in.TypeMeta in.ListMeta.DeepCopyInto(&out.ListMeta) if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]SecureSourceManagerInstance, len(*in)) + *out = make([]FirestoreDatabase, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -139,18 +123,18 @@ func (in *SecureSourceManagerInstanceList) DeepCopyInto(out *SecureSourceManager return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecureSourceManagerInstanceList. -func (in *SecureSourceManagerInstanceList) DeepCopy() *SecureSourceManagerInstanceList { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirestoreDatabaseList. +func (in *FirestoreDatabaseList) DeepCopy() *FirestoreDatabaseList { if in == nil { return nil } - out := new(SecureSourceManagerInstanceList) + out := new(FirestoreDatabaseList) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *SecureSourceManagerInstanceList) DeepCopyObject() runtime.Object { +func (in *FirestoreDatabaseList) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -158,10 +142,20 @@ func (in *SecureSourceManagerInstanceList) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SecureSourceManagerInstanceSpec) DeepCopyInto(out *SecureSourceManagerInstanceSpec) { +func (in *FirestoreDatabaseSpec) DeepCopyInto(out *FirestoreDatabaseSpec) { *out = *in - if in.KmsKey != nil { - in, out := &in.KmsKey, &out.KmsKey + if in.ConcurrencyMode != nil { + in, out := &in.ConcurrencyMode, &out.ConcurrencyMode + *out = new(string) + **out = **in + } + if in.LocationID != nil { + in, out := &in.LocationID, &out.LocationID + *out = new(string) + **out = **in + } + if in.PointInTimeRecoveryEnablement != nil { + in, out := &in.PointInTimeRecoveryEnablement, &out.PointInTimeRecoveryEnablement *out = new(string) **out = **in } @@ -174,18 +168,18 @@ func (in *SecureSourceManagerInstanceSpec) DeepCopyInto(out *SecureSourceManager return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecureSourceManagerInstanceSpec. -func (in *SecureSourceManagerInstanceSpec) DeepCopy() *SecureSourceManagerInstanceSpec { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirestoreDatabaseSpec. +func (in *FirestoreDatabaseSpec) DeepCopy() *FirestoreDatabaseSpec { if in == nil { return nil } - out := new(SecureSourceManagerInstanceSpec) + out := new(FirestoreDatabaseSpec) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SecureSourceManagerInstanceStatus) DeepCopyInto(out *SecureSourceManagerInstanceStatus) { +func (in *FirestoreDatabaseStatus) DeepCopyInto(out *FirestoreDatabaseStatus) { *out = *in if in.Conditions != nil { in, out := &in.Conditions, &out.Conditions @@ -204,18 +198,18 @@ func (in *SecureSourceManagerInstanceStatus) DeepCopyInto(out *SecureSourceManag } if in.ObservedState != nil { in, out := &in.ObservedState, &out.ObservedState - *out = new(InstanceObservedStateStatus) + *out = new(DatabaseObservedStateStatus) (*in).DeepCopyInto(*out) } return } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecureSourceManagerInstanceStatus. -func (in *SecureSourceManagerInstanceStatus) DeepCopy() *SecureSourceManagerInstanceStatus { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirestoreDatabaseStatus. +func (in *FirestoreDatabaseStatus) DeepCopy() *FirestoreDatabaseStatus { if in == nil { return nil } - out := new(SecureSourceManagerInstanceStatus) + out := new(FirestoreDatabaseStatus) in.DeepCopyInto(out) return out } diff --git a/pkg/clients/generated/apis/gkehub/v1beta1/gkehubfeaturemembership_types.go b/pkg/clients/generated/apis/gkehub/v1beta1/gkehubfeaturemembership_types.go index 1168af08c0..8e62824c33 100644 --- a/pkg/clients/generated/apis/gkehub/v1beta1/gkehubfeaturemembership_types.go +++ b/pkg/clients/generated/apis/gkehub/v1beta1/gkehubfeaturemembership_types.go @@ -69,7 +69,7 @@ type FeaturemembershipConfigmanagement struct { // +optional ConfigSync *FeaturemembershipConfigSync `json:"configSync,omitempty"` - /* **DEPRECATED** Configuring Hierarchy Controller through the configmanagement feature is no longer recommended. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead. */ + /* Hierarchy Controller is no longer available. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead. */ // +optional HierarchyController *FeaturemembershipHierarchyController `json:"hierarchyController,omitempty"` diff --git a/pkg/clients/generated/apis/monitoring/v1beta1/monitoringdashboard_types.go b/pkg/clients/generated/apis/monitoring/v1beta1/monitoringdashboard_types.go index 84013429da..e71ed3a949 100644 --- a/pkg/clients/generated/apis/monitoring/v1beta1/monitoringdashboard_types.go +++ b/pkg/clients/generated/apis/monitoring/v1beta1/monitoringdashboard_types.go @@ -257,7 +257,7 @@ type DashboardPieChart struct { } type DashboardProjectRefs struct { - /* The `projectID` field of a project, when not managed by KCC. */ + /* The `projectID` field of a project, when not managed by Config Connector. */ // +optional External *string `json:"external,omitempty"` diff --git a/pkg/clients/generated/apis/securesourcemanager/group.go b/pkg/clients/generated/apis/securesourcemanager/group.go deleted file mode 100644 index 0fb8cbf8b4..0000000000 --- a/pkg/clients/generated/apis/securesourcemanager/group.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2020 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// ---------------------------------------------------------------------------- -// -// *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -// -// ---------------------------------------------------------------------------- -// -// This file is automatically generated by Config Connector and manual -// changes will be clobbered when the file is regenerated. -// -// ---------------------------------------------------------------------------- - -// *** DISCLAIMER *** -// Config Connector's go-client for CRDs is currently in ALPHA, which means -// that future versions of the go-client may include breaking changes. -// Please try it out and give us feedback! - -// Package securesourcemanager contains securesourcemanager API versions. -package securesourcemanager diff --git a/pkg/clients/generated/apis/securesourcemanager/v1alpha1/securesourcemanagerinstance_types.go b/pkg/clients/generated/apis/securesourcemanager/v1alpha1/securesourcemanagerinstance_types.go deleted file mode 100644 index 3133a55838..0000000000 --- a/pkg/clients/generated/apis/securesourcemanager/v1alpha1/securesourcemanagerinstance_types.go +++ /dev/null @@ -1,134 +0,0 @@ -// Copyright 2020 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// ---------------------------------------------------------------------------- -// -// *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -// -// ---------------------------------------------------------------------------- -// -// This file is automatically generated by Config Connector and manual -// changes will be clobbered when the file is regenerated. -// -// ---------------------------------------------------------------------------- - -// *** DISCLAIMER *** -// Config Connector's go-client for CRDs is currently in ALPHA, which means -// that future versions of the go-client may include breaking changes. -// Please try it out and give us feedback! - -package v1alpha1 - -import ( - "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/k8s/v1alpha1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type SecureSourceManagerInstanceSpec struct { - /* Optional. Immutable. Customer-managed encryption key name, in the format projects/* /locations/* /keyRings/* /cryptoKeys/*. */ - // +optional - KmsKey *string `json:"kmsKey,omitempty"` - - /* Immutable. Location of the instance. */ - Location string `json:"location"` - - /* Immutable. The Project that this resource belongs to. */ - ProjectRef v1alpha1.ResourceRef `json:"projectRef"` - - /* Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default. */ - // +optional - ResourceID *string `json:"resourceID,omitempty"` -} - -type InstanceHostConfigStatus struct { - /* Output only. API hostname. This is the hostname to use for **Host: Data Plane** endpoints. */ - // +optional - Api *string `json:"api,omitempty"` - - /* Output only. Git HTTP hostname. */ - // +optional - GitHTTP *string `json:"gitHTTP,omitempty"` - - /* Output only. Git SSH hostname. */ - // +optional - GitSSH *string `json:"gitSSH,omitempty"` - - /* Output only. HTML hostname. */ - // +optional - Html *string `json:"html,omitempty"` -} - -type InstanceObservedStateStatus struct { - /* Output only. A list of hostnames for this instance. */ - // +optional - HostConfig *InstanceHostConfigStatus `json:"hostConfig,omitempty"` - - /* Output only. Current state of the instance. */ - // +optional - State *string `json:"state,omitempty"` - - /* Output only. An optional field providing information about the current instance state. */ - // +optional - StateNote *string `json:"stateNote,omitempty"` -} - -type SecureSourceManagerInstanceStatus struct { - /* Conditions represent the latest available observations of the - SecureSourceManagerInstance's current state. */ - Conditions []v1alpha1.Condition `json:"conditions,omitempty"` - /* A unique specifier for the SecureSourceManagerInstance resource in GCP. */ - // +optional - ExternalRef *string `json:"externalRef,omitempty"` - - /* ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource. */ - // +optional - ObservedGeneration *int64 `json:"observedGeneration,omitempty"` - - /* ObservedState is the state of the resource as most recently observed in GCP. */ - // +optional - ObservedState *InstanceObservedStateStatus `json:"observedState,omitempty"` -} - -// +genclient -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// +kubebuilder:resource:categories=gcp,shortName=gcpsecuresourcemanagerinstance;gcpsecuresourcemanagerinstances -// +kubebuilder:subresource:status -// +kubebuilder:metadata:labels="cnrm.cloud.google.com/managed-by-kcc=true";"cnrm.cloud.google.com/stability-level=alpha";"cnrm.cloud.google.com/system=true" -// +kubebuilder:printcolumn:name="Age",JSONPath=".metadata.creationTimestamp",type="date" -// +kubebuilder:printcolumn:name="Ready",JSONPath=".status.conditions[?(@.type=='Ready')].status",type="string",description="When 'True', the most recent reconcile of the resource succeeded" -// +kubebuilder:printcolumn:name="Status",JSONPath=".status.conditions[?(@.type=='Ready')].reason",type="string",description="The reason for the value in 'Ready'" -// +kubebuilder:printcolumn:name="Status Age",JSONPath=".status.conditions[?(@.type=='Ready')].lastTransitionTime",type="date",description="The last transition time for the value in 'Status'" - -// SecureSourceManagerInstance is the Schema for the securesourcemanager API -// +k8s:openapi-gen=true -type SecureSourceManagerInstance struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - Spec SecureSourceManagerInstanceSpec `json:"spec,omitempty"` - Status SecureSourceManagerInstanceStatus `json:"status,omitempty"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// SecureSourceManagerInstanceList contains a list of SecureSourceManagerInstance -type SecureSourceManagerInstanceList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []SecureSourceManagerInstance `json:"items"` -} - -func init() { - SchemeBuilder.Register(&SecureSourceManagerInstance{}, &SecureSourceManagerInstanceList{}) -} diff --git a/pkg/clients/generated/client/clientset/versioned/clientset.go b/pkg/clients/generated/client/clientset/versioned/clientset.go index 75ba0d03ba..a07397821c 100644 --- a/pkg/clients/generated/client/clientset/versioned/clientset.go +++ b/pkg/clients/generated/client/clientset/versioned/clientset.go @@ -87,6 +87,7 @@ import ( firebasedatabasev1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/firebasedatabase/v1alpha1" firebasehostingv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/firebasehosting/v1alpha1" firebasestoragev1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/firebasestorage/v1alpha1" + firestorev1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1" firestorev1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1beta1" gkebackupv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/gkebackup/v1alpha1" gkehubv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/gkehub/v1beta1" @@ -123,7 +124,6 @@ import ( resourcemanagerv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/resourcemanager/v1beta1" runv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/run/v1beta1" secretmanagerv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/secretmanager/v1beta1" - securesourcemanagerv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1" securitycenterv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/securitycenter/v1alpha1" servicedirectoryv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/servicedirectory/v1beta1" servicenetworkingv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/servicenetworking/v1beta1" @@ -213,6 +213,7 @@ type Interface interface { FirebasedatabaseV1alpha1() firebasedatabasev1alpha1.FirebasedatabaseV1alpha1Interface FirebasehostingV1alpha1() firebasehostingv1alpha1.FirebasehostingV1alpha1Interface FirebasestorageV1alpha1() firebasestoragev1alpha1.FirebasestorageV1alpha1Interface + FirestoreV1alpha1() firestorev1alpha1.FirestoreV1alpha1Interface FirestoreV1beta1() firestorev1beta1.FirestoreV1beta1Interface GkebackupV1alpha1() gkebackupv1alpha1.GkebackupV1alpha1Interface GkehubV1beta1() gkehubv1beta1.GkehubV1beta1Interface @@ -249,7 +250,6 @@ type Interface interface { ResourcemanagerV1beta1() resourcemanagerv1beta1.ResourcemanagerV1beta1Interface RunV1beta1() runv1beta1.RunV1beta1Interface SecretmanagerV1beta1() secretmanagerv1beta1.SecretmanagerV1beta1Interface - SecuresourcemanagerV1alpha1() securesourcemanagerv1alpha1.SecuresourcemanagerV1alpha1Interface SecuritycenterV1alpha1() securitycenterv1alpha1.SecuritycenterV1alpha1Interface ServicedirectoryV1beta1() servicedirectoryv1beta1.ServicedirectoryV1beta1Interface ServicenetworkingV1beta1() servicenetworkingv1beta1.ServicenetworkingV1beta1Interface @@ -337,6 +337,7 @@ type Clientset struct { firebasedatabaseV1alpha1 *firebasedatabasev1alpha1.FirebasedatabaseV1alpha1Client firebasehostingV1alpha1 *firebasehostingv1alpha1.FirebasehostingV1alpha1Client firebasestorageV1alpha1 *firebasestoragev1alpha1.FirebasestorageV1alpha1Client + firestoreV1alpha1 *firestorev1alpha1.FirestoreV1alpha1Client firestoreV1beta1 *firestorev1beta1.FirestoreV1beta1Client gkebackupV1alpha1 *gkebackupv1alpha1.GkebackupV1alpha1Client gkehubV1beta1 *gkehubv1beta1.GkehubV1beta1Client @@ -373,7 +374,6 @@ type Clientset struct { resourcemanagerV1beta1 *resourcemanagerv1beta1.ResourcemanagerV1beta1Client runV1beta1 *runv1beta1.RunV1beta1Client secretmanagerV1beta1 *secretmanagerv1beta1.SecretmanagerV1beta1Client - securesourcemanagerV1alpha1 *securesourcemanagerv1alpha1.SecuresourcemanagerV1alpha1Client securitycenterV1alpha1 *securitycenterv1alpha1.SecuritycenterV1alpha1Client servicedirectoryV1beta1 *servicedirectoryv1beta1.ServicedirectoryV1beta1Client servicenetworkingV1beta1 *servicenetworkingv1beta1.ServicenetworkingV1beta1Client @@ -706,6 +706,11 @@ func (c *Clientset) FirebasestorageV1alpha1() firebasestoragev1alpha1.Firebasest return c.firebasestorageV1alpha1 } +// FirestoreV1alpha1 retrieves the FirestoreV1alpha1Client +func (c *Clientset) FirestoreV1alpha1() firestorev1alpha1.FirestoreV1alpha1Interface { + return c.firestoreV1alpha1 +} + // FirestoreV1beta1 retrieves the FirestoreV1beta1Client func (c *Clientset) FirestoreV1beta1() firestorev1beta1.FirestoreV1beta1Interface { return c.firestoreV1beta1 @@ -886,11 +891,6 @@ func (c *Clientset) SecretmanagerV1beta1() secretmanagerv1beta1.SecretmanagerV1b return c.secretmanagerV1beta1 } -// SecuresourcemanagerV1alpha1 retrieves the SecuresourcemanagerV1alpha1Client -func (c *Clientset) SecuresourcemanagerV1alpha1() securesourcemanagerv1alpha1.SecuresourcemanagerV1alpha1Interface { - return c.securesourcemanagerV1alpha1 -} - // SecuritycenterV1alpha1 retrieves the SecuritycenterV1alpha1Client func (c *Clientset) SecuritycenterV1alpha1() securitycenterv1alpha1.SecuritycenterV1alpha1Interface { return c.securitycenterV1alpha1 @@ -1283,6 +1283,10 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset, if err != nil { return nil, err } + cs.firestoreV1alpha1, err = firestorev1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient) + if err != nil { + return nil, err + } cs.firestoreV1beta1, err = firestorev1beta1.NewForConfigAndClient(&configShallowCopy, httpClient) if err != nil { return nil, err @@ -1427,10 +1431,6 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset, if err != nil { return nil, err } - cs.securesourcemanagerV1alpha1, err = securesourcemanagerv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient) - if err != nil { - return nil, err - } cs.securitycenterV1alpha1, err = securitycenterv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient) if err != nil { return nil, err @@ -1594,6 +1594,7 @@ func New(c rest.Interface) *Clientset { cs.firebasedatabaseV1alpha1 = firebasedatabasev1alpha1.New(c) cs.firebasehostingV1alpha1 = firebasehostingv1alpha1.New(c) cs.firebasestorageV1alpha1 = firebasestoragev1alpha1.New(c) + cs.firestoreV1alpha1 = firestorev1alpha1.New(c) cs.firestoreV1beta1 = firestorev1beta1.New(c) cs.gkebackupV1alpha1 = gkebackupv1alpha1.New(c) cs.gkehubV1beta1 = gkehubv1beta1.New(c) @@ -1630,7 +1631,6 @@ func New(c rest.Interface) *Clientset { cs.resourcemanagerV1beta1 = resourcemanagerv1beta1.New(c) cs.runV1beta1 = runv1beta1.New(c) cs.secretmanagerV1beta1 = secretmanagerv1beta1.New(c) - cs.securesourcemanagerV1alpha1 = securesourcemanagerv1alpha1.New(c) cs.securitycenterV1alpha1 = securitycenterv1alpha1.New(c) cs.servicedirectoryV1beta1 = servicedirectoryv1beta1.New(c) cs.servicenetworkingV1beta1 = servicenetworkingv1beta1.New(c) diff --git a/pkg/clients/generated/client/clientset/versioned/fake/clientset_generated.go b/pkg/clients/generated/client/clientset/versioned/fake/clientset_generated.go index 3e9365db18..98aa497c6c 100644 --- a/pkg/clients/generated/client/clientset/versioned/fake/clientset_generated.go +++ b/pkg/clients/generated/client/clientset/versioned/fake/clientset_generated.go @@ -147,6 +147,8 @@ import ( fakefirebasehostingv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/firebasehosting/v1alpha1/fake" firebasestoragev1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/firebasestorage/v1alpha1" fakefirebasestoragev1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/firebasestorage/v1alpha1/fake" + firestorev1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1" + fakefirestorev1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/fake" firestorev1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1beta1" fakefirestorev1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1beta1/fake" gkebackupv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/gkebackup/v1alpha1" @@ -219,8 +221,6 @@ import ( fakerunv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/run/v1beta1/fake" secretmanagerv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/secretmanager/v1beta1" fakesecretmanagerv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/secretmanager/v1beta1/fake" - securesourcemanagerv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1" - fakesecuresourcemanagerv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/fake" securitycenterv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/securitycenter/v1alpha1" fakesecuritycenterv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/securitycenter/v1alpha1/fake" servicedirectoryv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/servicedirectory/v1beta1" @@ -628,6 +628,11 @@ func (c *Clientset) FirebasestorageV1alpha1() firebasestoragev1alpha1.Firebasest return &fakefirebasestoragev1alpha1.FakeFirebasestorageV1alpha1{Fake: &c.Fake} } +// FirestoreV1alpha1 retrieves the FirestoreV1alpha1Client +func (c *Clientset) FirestoreV1alpha1() firestorev1alpha1.FirestoreV1alpha1Interface { + return &fakefirestorev1alpha1.FakeFirestoreV1alpha1{Fake: &c.Fake} +} + // FirestoreV1beta1 retrieves the FirestoreV1beta1Client func (c *Clientset) FirestoreV1beta1() firestorev1beta1.FirestoreV1beta1Interface { return &fakefirestorev1beta1.FakeFirestoreV1beta1{Fake: &c.Fake} @@ -808,11 +813,6 @@ func (c *Clientset) SecretmanagerV1beta1() secretmanagerv1beta1.SecretmanagerV1b return &fakesecretmanagerv1beta1.FakeSecretmanagerV1beta1{Fake: &c.Fake} } -// SecuresourcemanagerV1alpha1 retrieves the SecuresourcemanagerV1alpha1Client -func (c *Clientset) SecuresourcemanagerV1alpha1() securesourcemanagerv1alpha1.SecuresourcemanagerV1alpha1Interface { - return &fakesecuresourcemanagerv1alpha1.FakeSecuresourcemanagerV1alpha1{Fake: &c.Fake} -} - // SecuritycenterV1alpha1 retrieves the SecuritycenterV1alpha1Client func (c *Clientset) SecuritycenterV1alpha1() securitycenterv1alpha1.SecuritycenterV1alpha1Interface { return &fakesecuritycenterv1alpha1.FakeSecuritycenterV1alpha1{Fake: &c.Fake} diff --git a/pkg/clients/generated/client/clientset/versioned/fake/register.go b/pkg/clients/generated/client/clientset/versioned/fake/register.go index 8d19c1b96c..0a41360d62 100644 --- a/pkg/clients/generated/client/clientset/versioned/fake/register.go +++ b/pkg/clients/generated/client/clientset/versioned/fake/register.go @@ -84,6 +84,7 @@ import ( firebasedatabasev1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/firebasedatabase/v1alpha1" firebasehostingv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/firebasehosting/v1alpha1" firebasestoragev1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/firebasestorage/v1alpha1" + firestorev1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/firestore/v1alpha1" firestorev1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/firestore/v1beta1" gkebackupv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/gkebackup/v1alpha1" gkehubv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/gkehub/v1beta1" @@ -120,7 +121,6 @@ import ( resourcemanagerv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/resourcemanager/v1beta1" runv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/run/v1beta1" secretmanagerv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/secretmanager/v1beta1" - securesourcemanagerv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/securesourcemanager/v1alpha1" securitycenterv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/securitycenter/v1alpha1" servicedirectoryv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/servicedirectory/v1beta1" servicenetworkingv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/servicenetworking/v1beta1" @@ -214,6 +214,7 @@ var localSchemeBuilder = runtime.SchemeBuilder{ firebasedatabasev1alpha1.AddToScheme, firebasehostingv1alpha1.AddToScheme, firebasestoragev1alpha1.AddToScheme, + firestorev1alpha1.AddToScheme, firestorev1beta1.AddToScheme, gkebackupv1alpha1.AddToScheme, gkehubv1beta1.AddToScheme, @@ -250,7 +251,6 @@ var localSchemeBuilder = runtime.SchemeBuilder{ resourcemanagerv1beta1.AddToScheme, runv1beta1.AddToScheme, secretmanagerv1beta1.AddToScheme, - securesourcemanagerv1alpha1.AddToScheme, securitycenterv1alpha1.AddToScheme, servicedirectoryv1beta1.AddToScheme, servicenetworkingv1beta1.AddToScheme, diff --git a/pkg/clients/generated/client/clientset/versioned/scheme/register.go b/pkg/clients/generated/client/clientset/versioned/scheme/register.go index 81f254fc96..547a994c07 100644 --- a/pkg/clients/generated/client/clientset/versioned/scheme/register.go +++ b/pkg/clients/generated/client/clientset/versioned/scheme/register.go @@ -84,6 +84,7 @@ import ( firebasedatabasev1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/firebasedatabase/v1alpha1" firebasehostingv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/firebasehosting/v1alpha1" firebasestoragev1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/firebasestorage/v1alpha1" + firestorev1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/firestore/v1alpha1" firestorev1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/firestore/v1beta1" gkebackupv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/gkebackup/v1alpha1" gkehubv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/gkehub/v1beta1" @@ -120,7 +121,6 @@ import ( resourcemanagerv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/resourcemanager/v1beta1" runv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/run/v1beta1" secretmanagerv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/secretmanager/v1beta1" - securesourcemanagerv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/securesourcemanager/v1alpha1" securitycenterv1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/securitycenter/v1alpha1" servicedirectoryv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/servicedirectory/v1beta1" servicenetworkingv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/servicenetworking/v1beta1" @@ -214,6 +214,7 @@ var localSchemeBuilder = runtime.SchemeBuilder{ firebasedatabasev1alpha1.AddToScheme, firebasehostingv1alpha1.AddToScheme, firebasestoragev1alpha1.AddToScheme, + firestorev1alpha1.AddToScheme, firestorev1beta1.AddToScheme, gkebackupv1alpha1.AddToScheme, gkehubv1beta1.AddToScheme, @@ -250,7 +251,6 @@ var localSchemeBuilder = runtime.SchemeBuilder{ resourcemanagerv1beta1.AddToScheme, runv1beta1.AddToScheme, secretmanagerv1beta1.AddToScheme, - securesourcemanagerv1alpha1.AddToScheme, securitycenterv1alpha1.AddToScheme, servicedirectoryv1beta1.AddToScheme, servicenetworkingv1beta1.AddToScheme, diff --git a/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/doc.go b/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/doc.go similarity index 100% rename from pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/doc.go rename to pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/doc.go diff --git a/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/fake/doc.go b/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/fake/doc.go similarity index 100% rename from pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/fake/doc.go rename to pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/fake/doc.go diff --git a/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/fake/fake_securesourcemanager_client.go b/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/fake/fake_firestore_client.go similarity index 74% rename from pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/fake/fake_securesourcemanager_client.go rename to pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/fake/fake_firestore_client.go index cff98ae6fb..65224cc5a0 100644 --- a/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/fake/fake_securesourcemanager_client.go +++ b/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/fake/fake_firestore_client.go @@ -22,22 +22,22 @@ package fake import ( - v1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1" + v1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1" rest "k8s.io/client-go/rest" testing "k8s.io/client-go/testing" ) -type FakeSecuresourcemanagerV1alpha1 struct { +type FakeFirestoreV1alpha1 struct { *testing.Fake } -func (c *FakeSecuresourcemanagerV1alpha1) SecureSourceManagerInstances(namespace string) v1alpha1.SecureSourceManagerInstanceInterface { - return &FakeSecureSourceManagerInstances{c, namespace} +func (c *FakeFirestoreV1alpha1) FirestoreDatabases(namespace string) v1alpha1.FirestoreDatabaseInterface { + return &FakeFirestoreDatabases{c, namespace} } // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *FakeSecuresourcemanagerV1alpha1) RESTClient() rest.Interface { +func (c *FakeFirestoreV1alpha1) RESTClient() rest.Interface { var ret *rest.RESTClient return ret } diff --git a/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/fake/fake_firestoredatabase.go b/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/fake/fake_firestoredatabase.go new file mode 100644 index 0000000000..bc8335c549 --- /dev/null +++ b/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/fake/fake_firestoredatabase.go @@ -0,0 +1,144 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + "context" + + v1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/firestore/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeFirestoreDatabases implements FirestoreDatabaseInterface +type FakeFirestoreDatabases struct { + Fake *FakeFirestoreV1alpha1 + ns string +} + +var firestoredatabasesResource = v1alpha1.SchemeGroupVersion.WithResource("firestoredatabases") + +var firestoredatabasesKind = v1alpha1.SchemeGroupVersion.WithKind("FirestoreDatabase") + +// Get takes name of the firestoreDatabase, and returns the corresponding firestoreDatabase object, and an error if there is any. +func (c *FakeFirestoreDatabases) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.FirestoreDatabase, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(firestoredatabasesResource, c.ns, name), &v1alpha1.FirestoreDatabase{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.FirestoreDatabase), err +} + +// List takes label and field selectors, and returns the list of FirestoreDatabases that match those selectors. +func (c *FakeFirestoreDatabases) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.FirestoreDatabaseList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(firestoredatabasesResource, firestoredatabasesKind, c.ns, opts), &v1alpha1.FirestoreDatabaseList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1alpha1.FirestoreDatabaseList{ListMeta: obj.(*v1alpha1.FirestoreDatabaseList).ListMeta} + for _, item := range obj.(*v1alpha1.FirestoreDatabaseList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested firestoreDatabases. +func (c *FakeFirestoreDatabases) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(firestoredatabasesResource, c.ns, opts)) + +} + +// Create takes the representation of a firestoreDatabase and creates it. Returns the server's representation of the firestoreDatabase, and an error, if there is any. +func (c *FakeFirestoreDatabases) Create(ctx context.Context, firestoreDatabase *v1alpha1.FirestoreDatabase, opts v1.CreateOptions) (result *v1alpha1.FirestoreDatabase, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(firestoredatabasesResource, c.ns, firestoreDatabase), &v1alpha1.FirestoreDatabase{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.FirestoreDatabase), err +} + +// Update takes the representation of a firestoreDatabase and updates it. Returns the server's representation of the firestoreDatabase, and an error, if there is any. +func (c *FakeFirestoreDatabases) Update(ctx context.Context, firestoreDatabase *v1alpha1.FirestoreDatabase, opts v1.UpdateOptions) (result *v1alpha1.FirestoreDatabase, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(firestoredatabasesResource, c.ns, firestoreDatabase), &v1alpha1.FirestoreDatabase{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.FirestoreDatabase), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeFirestoreDatabases) UpdateStatus(ctx context.Context, firestoreDatabase *v1alpha1.FirestoreDatabase, opts v1.UpdateOptions) (*v1alpha1.FirestoreDatabase, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(firestoredatabasesResource, "status", c.ns, firestoreDatabase), &v1alpha1.FirestoreDatabase{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.FirestoreDatabase), err +} + +// Delete takes name of the firestoreDatabase and deletes it. Returns an error if one occurs. +func (c *FakeFirestoreDatabases) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteActionWithOptions(firestoredatabasesResource, c.ns, name, opts), &v1alpha1.FirestoreDatabase{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeFirestoreDatabases) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(firestoredatabasesResource, c.ns, listOpts) + + _, err := c.Fake.Invokes(action, &v1alpha1.FirestoreDatabaseList{}) + return err +} + +// Patch applies the patch and returns the patched firestoreDatabase. +func (c *FakeFirestoreDatabases) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.FirestoreDatabase, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(firestoredatabasesResource, c.ns, name, pt, data, subresources...), &v1alpha1.FirestoreDatabase{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.FirestoreDatabase), err +} diff --git a/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/securesourcemanager_client.go b/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/firestore_client.go similarity index 63% rename from pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/securesourcemanager_client.go rename to pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/firestore_client.go index 5d49f3e1da..ddecd9b0bc 100644 --- a/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/securesourcemanager_client.go +++ b/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/firestore_client.go @@ -24,29 +24,29 @@ package v1alpha1 import ( "net/http" - v1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/securesourcemanager/v1alpha1" + v1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/firestore/v1alpha1" "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/scheme" rest "k8s.io/client-go/rest" ) -type SecuresourcemanagerV1alpha1Interface interface { +type FirestoreV1alpha1Interface interface { RESTClient() rest.Interface - SecureSourceManagerInstancesGetter + FirestoreDatabasesGetter } -// SecuresourcemanagerV1alpha1Client is used to interact with features provided by the securesourcemanager.cnrm.cloud.google.com group. -type SecuresourcemanagerV1alpha1Client struct { +// FirestoreV1alpha1Client is used to interact with features provided by the firestore.cnrm.cloud.google.com group. +type FirestoreV1alpha1Client struct { restClient rest.Interface } -func (c *SecuresourcemanagerV1alpha1Client) SecureSourceManagerInstances(namespace string) SecureSourceManagerInstanceInterface { - return newSecureSourceManagerInstances(c, namespace) +func (c *FirestoreV1alpha1Client) FirestoreDatabases(namespace string) FirestoreDatabaseInterface { + return newFirestoreDatabases(c, namespace) } -// NewForConfig creates a new SecuresourcemanagerV1alpha1Client for the given config. +// NewForConfig creates a new FirestoreV1alpha1Client for the given config. // NewForConfig is equivalent to NewForConfigAndClient(c, httpClient), // where httpClient was generated with rest.HTTPClientFor(c). -func NewForConfig(c *rest.Config) (*SecuresourcemanagerV1alpha1Client, error) { +func NewForConfig(c *rest.Config) (*FirestoreV1alpha1Client, error) { config := *c if err := setConfigDefaults(&config); err != nil { return nil, err @@ -58,9 +58,9 @@ func NewForConfig(c *rest.Config) (*SecuresourcemanagerV1alpha1Client, error) { return NewForConfigAndClient(&config, httpClient) } -// NewForConfigAndClient creates a new SecuresourcemanagerV1alpha1Client for the given config and http client. +// NewForConfigAndClient creates a new FirestoreV1alpha1Client for the given config and http client. // Note the http client provided takes precedence over the configured transport values. -func NewForConfigAndClient(c *rest.Config, h *http.Client) (*SecuresourcemanagerV1alpha1Client, error) { +func NewForConfigAndClient(c *rest.Config, h *http.Client) (*FirestoreV1alpha1Client, error) { config := *c if err := setConfigDefaults(&config); err != nil { return nil, err @@ -69,12 +69,12 @@ func NewForConfigAndClient(c *rest.Config, h *http.Client) (*Securesourcemanager if err != nil { return nil, err } - return &SecuresourcemanagerV1alpha1Client{client}, nil + return &FirestoreV1alpha1Client{client}, nil } -// NewForConfigOrDie creates a new SecuresourcemanagerV1alpha1Client for the given config and +// NewForConfigOrDie creates a new FirestoreV1alpha1Client for the given config and // panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *SecuresourcemanagerV1alpha1Client { +func NewForConfigOrDie(c *rest.Config) *FirestoreV1alpha1Client { client, err := NewForConfig(c) if err != nil { panic(err) @@ -82,9 +82,9 @@ func NewForConfigOrDie(c *rest.Config) *SecuresourcemanagerV1alpha1Client { return client } -// New creates a new SecuresourcemanagerV1alpha1Client for the given RESTClient. -func New(c rest.Interface) *SecuresourcemanagerV1alpha1Client { - return &SecuresourcemanagerV1alpha1Client{c} +// New creates a new FirestoreV1alpha1Client for the given RESTClient. +func New(c rest.Interface) *FirestoreV1alpha1Client { + return &FirestoreV1alpha1Client{c} } func setConfigDefaults(config *rest.Config) error { @@ -102,7 +102,7 @@ func setConfigDefaults(config *rest.Config) error { // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *SecuresourcemanagerV1alpha1Client) RESTClient() rest.Interface { +func (c *FirestoreV1alpha1Client) RESTClient() rest.Interface { if c == nil { return nil } diff --git a/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/firestoredatabase.go b/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/firestoredatabase.go new file mode 100644 index 0000000000..30e8f3ac75 --- /dev/null +++ b/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/firestoredatabase.go @@ -0,0 +1,198 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// *** DISCLAIMER *** +// Config Connector's go-client for CRDs is currently in ALPHA, which means +// that future versions of the go-client may include breaking changes. +// Please try it out and give us feedback! + +// Code generated by client-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + "context" + "time" + + v1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/firestore/v1alpha1" + scheme "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" +) + +// FirestoreDatabasesGetter has a method to return a FirestoreDatabaseInterface. +// A group's client should implement this interface. +type FirestoreDatabasesGetter interface { + FirestoreDatabases(namespace string) FirestoreDatabaseInterface +} + +// FirestoreDatabaseInterface has methods to work with FirestoreDatabase resources. +type FirestoreDatabaseInterface interface { + Create(ctx context.Context, firestoreDatabase *v1alpha1.FirestoreDatabase, opts v1.CreateOptions) (*v1alpha1.FirestoreDatabase, error) + Update(ctx context.Context, firestoreDatabase *v1alpha1.FirestoreDatabase, opts v1.UpdateOptions) (*v1alpha1.FirestoreDatabase, error) + UpdateStatus(ctx context.Context, firestoreDatabase *v1alpha1.FirestoreDatabase, opts v1.UpdateOptions) (*v1alpha1.FirestoreDatabase, error) + Delete(ctx context.Context, name string, opts v1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error + Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.FirestoreDatabase, error) + List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.FirestoreDatabaseList, error) + Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.FirestoreDatabase, err error) + FirestoreDatabaseExpansion +} + +// firestoreDatabases implements FirestoreDatabaseInterface +type firestoreDatabases struct { + client rest.Interface + ns string +} + +// newFirestoreDatabases returns a FirestoreDatabases +func newFirestoreDatabases(c *FirestoreV1alpha1Client, namespace string) *firestoreDatabases { + return &firestoreDatabases{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the firestoreDatabase, and returns the corresponding firestoreDatabase object, and an error if there is any. +func (c *firestoreDatabases) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.FirestoreDatabase, err error) { + result = &v1alpha1.FirestoreDatabase{} + err = c.client.Get(). + Namespace(c.ns). + Resource("firestoredatabases"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(ctx). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of FirestoreDatabases that match those selectors. +func (c *firestoreDatabases) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.FirestoreDatabaseList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1alpha1.FirestoreDatabaseList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("firestoredatabases"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(ctx). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested firestoreDatabases. +func (c *firestoreDatabases) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("firestoredatabases"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch(ctx) +} + +// Create takes the representation of a firestoreDatabase and creates it. Returns the server's representation of the firestoreDatabase, and an error, if there is any. +func (c *firestoreDatabases) Create(ctx context.Context, firestoreDatabase *v1alpha1.FirestoreDatabase, opts v1.CreateOptions) (result *v1alpha1.FirestoreDatabase, err error) { + result = &v1alpha1.FirestoreDatabase{} + err = c.client.Post(). + Namespace(c.ns). + Resource("firestoredatabases"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(firestoreDatabase). + Do(ctx). + Into(result) + return +} + +// Update takes the representation of a firestoreDatabase and updates it. Returns the server's representation of the firestoreDatabase, and an error, if there is any. +func (c *firestoreDatabases) Update(ctx context.Context, firestoreDatabase *v1alpha1.FirestoreDatabase, opts v1.UpdateOptions) (result *v1alpha1.FirestoreDatabase, err error) { + result = &v1alpha1.FirestoreDatabase{} + err = c.client.Put(). + Namespace(c.ns). + Resource("firestoredatabases"). + Name(firestoreDatabase.Name). + VersionedParams(&opts, scheme.ParameterCodec). + Body(firestoreDatabase). + Do(ctx). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *firestoreDatabases) UpdateStatus(ctx context.Context, firestoreDatabase *v1alpha1.FirestoreDatabase, opts v1.UpdateOptions) (result *v1alpha1.FirestoreDatabase, err error) { + result = &v1alpha1.FirestoreDatabase{} + err = c.client.Put(). + Namespace(c.ns). + Resource("firestoredatabases"). + Name(firestoreDatabase.Name). + SubResource("status"). + VersionedParams(&opts, scheme.ParameterCodec). + Body(firestoreDatabase). + Do(ctx). + Into(result) + return +} + +// Delete takes name of the firestoreDatabase and deletes it. Returns an error if one occurs. +func (c *firestoreDatabases) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("firestoredatabases"). + Name(name). + Body(&opts). + Do(ctx). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *firestoreDatabases) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { + var timeout time.Duration + if listOpts.TimeoutSeconds != nil { + timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("firestoredatabases"). + VersionedParams(&listOpts, scheme.ParameterCodec). + Timeout(timeout). + Body(&opts). + Do(ctx). + Error() +} + +// Patch applies the patch and returns the patched firestoreDatabase. +func (c *firestoreDatabases) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.FirestoreDatabase, err error) { + result = &v1alpha1.FirestoreDatabase{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("firestoredatabases"). + Name(name). + SubResource(subresources...). + VersionedParams(&opts, scheme.ParameterCodec). + Body(data). + Do(ctx). + Into(result) + return +} diff --git a/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/generated_expansion.go b/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/generated_expansion.go similarity index 94% rename from pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/generated_expansion.go rename to pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/generated_expansion.go index c0ac7f5c2a..0363c6508c 100644 --- a/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/generated_expansion.go +++ b/pkg/clients/generated/client/clientset/versioned/typed/firestore/v1alpha1/generated_expansion.go @@ -21,4 +21,4 @@ package v1alpha1 -type SecureSourceManagerInstanceExpansion interface{} +type FirestoreDatabaseExpansion interface{} diff --git a/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/fake/fake_securesourcemanagerinstance.go b/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/fake/fake_securesourcemanagerinstance.go deleted file mode 100644 index 1e0390c27c..0000000000 --- a/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/fake/fake_securesourcemanagerinstance.go +++ /dev/null @@ -1,144 +0,0 @@ -// Copyright 2020 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// *** DISCLAIMER *** -// Config Connector's go-client for CRDs is currently in ALPHA, which means -// that future versions of the go-client may include breaking changes. -// Please try it out and give us feedback! - -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - - v1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/securesourcemanager/v1alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeSecureSourceManagerInstances implements SecureSourceManagerInstanceInterface -type FakeSecureSourceManagerInstances struct { - Fake *FakeSecuresourcemanagerV1alpha1 - ns string -} - -var securesourcemanagerinstancesResource = v1alpha1.SchemeGroupVersion.WithResource("securesourcemanagerinstances") - -var securesourcemanagerinstancesKind = v1alpha1.SchemeGroupVersion.WithKind("SecureSourceManagerInstance") - -// Get takes name of the secureSourceManagerInstance, and returns the corresponding secureSourceManagerInstance object, and an error if there is any. -func (c *FakeSecureSourceManagerInstances) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.SecureSourceManagerInstance, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(securesourcemanagerinstancesResource, c.ns, name), &v1alpha1.SecureSourceManagerInstance{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.SecureSourceManagerInstance), err -} - -// List takes label and field selectors, and returns the list of SecureSourceManagerInstances that match those selectors. -func (c *FakeSecureSourceManagerInstances) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.SecureSourceManagerInstanceList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(securesourcemanagerinstancesResource, securesourcemanagerinstancesKind, c.ns, opts), &v1alpha1.SecureSourceManagerInstanceList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &v1alpha1.SecureSourceManagerInstanceList{ListMeta: obj.(*v1alpha1.SecureSourceManagerInstanceList).ListMeta} - for _, item := range obj.(*v1alpha1.SecureSourceManagerInstanceList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested secureSourceManagerInstances. -func (c *FakeSecureSourceManagerInstances) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(securesourcemanagerinstancesResource, c.ns, opts)) - -} - -// Create takes the representation of a secureSourceManagerInstance and creates it. Returns the server's representation of the secureSourceManagerInstance, and an error, if there is any. -func (c *FakeSecureSourceManagerInstances) Create(ctx context.Context, secureSourceManagerInstance *v1alpha1.SecureSourceManagerInstance, opts v1.CreateOptions) (result *v1alpha1.SecureSourceManagerInstance, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(securesourcemanagerinstancesResource, c.ns, secureSourceManagerInstance), &v1alpha1.SecureSourceManagerInstance{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.SecureSourceManagerInstance), err -} - -// Update takes the representation of a secureSourceManagerInstance and updates it. Returns the server's representation of the secureSourceManagerInstance, and an error, if there is any. -func (c *FakeSecureSourceManagerInstances) Update(ctx context.Context, secureSourceManagerInstance *v1alpha1.SecureSourceManagerInstance, opts v1.UpdateOptions) (result *v1alpha1.SecureSourceManagerInstance, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(securesourcemanagerinstancesResource, c.ns, secureSourceManagerInstance), &v1alpha1.SecureSourceManagerInstance{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.SecureSourceManagerInstance), err -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeSecureSourceManagerInstances) UpdateStatus(ctx context.Context, secureSourceManagerInstance *v1alpha1.SecureSourceManagerInstance, opts v1.UpdateOptions) (*v1alpha1.SecureSourceManagerInstance, error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(securesourcemanagerinstancesResource, "status", c.ns, secureSourceManagerInstance), &v1alpha1.SecureSourceManagerInstance{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.SecureSourceManagerInstance), err -} - -// Delete takes name of the secureSourceManagerInstance and deletes it. Returns an error if one occurs. -func (c *FakeSecureSourceManagerInstances) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteActionWithOptions(securesourcemanagerinstancesResource, c.ns, name, opts), &v1alpha1.SecureSourceManagerInstance{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeSecureSourceManagerInstances) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(securesourcemanagerinstancesResource, c.ns, listOpts) - - _, err := c.Fake.Invokes(action, &v1alpha1.SecureSourceManagerInstanceList{}) - return err -} - -// Patch applies the patch and returns the patched secureSourceManagerInstance. -func (c *FakeSecureSourceManagerInstances) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.SecureSourceManagerInstance, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(securesourcemanagerinstancesResource, c.ns, name, pt, data, subresources...), &v1alpha1.SecureSourceManagerInstance{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.SecureSourceManagerInstance), err -} diff --git a/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/securesourcemanagerinstance.go b/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/securesourcemanagerinstance.go deleted file mode 100644 index 9fd3ac92ce..0000000000 --- a/pkg/clients/generated/client/clientset/versioned/typed/securesourcemanager/v1alpha1/securesourcemanagerinstance.go +++ /dev/null @@ -1,198 +0,0 @@ -// Copyright 2020 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// *** DISCLAIMER *** -// Config Connector's go-client for CRDs is currently in ALPHA, which means -// that future versions of the go-client may include breaking changes. -// Please try it out and give us feedback! - -// Code generated by client-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - "context" - "time" - - v1alpha1 "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/apis/securesourcemanager/v1alpha1" - scheme "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/clients/generated/client/clientset/versioned/scheme" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" -) - -// SecureSourceManagerInstancesGetter has a method to return a SecureSourceManagerInstanceInterface. -// A group's client should implement this interface. -type SecureSourceManagerInstancesGetter interface { - SecureSourceManagerInstances(namespace string) SecureSourceManagerInstanceInterface -} - -// SecureSourceManagerInstanceInterface has methods to work with SecureSourceManagerInstance resources. -type SecureSourceManagerInstanceInterface interface { - Create(ctx context.Context, secureSourceManagerInstance *v1alpha1.SecureSourceManagerInstance, opts v1.CreateOptions) (*v1alpha1.SecureSourceManagerInstance, error) - Update(ctx context.Context, secureSourceManagerInstance *v1alpha1.SecureSourceManagerInstance, opts v1.UpdateOptions) (*v1alpha1.SecureSourceManagerInstance, error) - UpdateStatus(ctx context.Context, secureSourceManagerInstance *v1alpha1.SecureSourceManagerInstance, opts v1.UpdateOptions) (*v1alpha1.SecureSourceManagerInstance, error) - Delete(ctx context.Context, name string, opts v1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error - Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.SecureSourceManagerInstance, error) - List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.SecureSourceManagerInstanceList, error) - Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.SecureSourceManagerInstance, err error) - SecureSourceManagerInstanceExpansion -} - -// secureSourceManagerInstances implements SecureSourceManagerInstanceInterface -type secureSourceManagerInstances struct { - client rest.Interface - ns string -} - -// newSecureSourceManagerInstances returns a SecureSourceManagerInstances -func newSecureSourceManagerInstances(c *SecuresourcemanagerV1alpha1Client, namespace string) *secureSourceManagerInstances { - return &secureSourceManagerInstances{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the secureSourceManagerInstance, and returns the corresponding secureSourceManagerInstance object, and an error if there is any. -func (c *secureSourceManagerInstances) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.SecureSourceManagerInstance, err error) { - result = &v1alpha1.SecureSourceManagerInstance{} - err = c.client.Get(). - Namespace(c.ns). - Resource("securesourcemanagerinstances"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of SecureSourceManagerInstances that match those selectors. -func (c *secureSourceManagerInstances) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.SecureSourceManagerInstanceList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1alpha1.SecureSourceManagerInstanceList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("securesourcemanagerinstances"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested secureSourceManagerInstances. -func (c *secureSourceManagerInstances) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - opts.Watch = true - return c.client.Get(). - Namespace(c.ns). - Resource("securesourcemanagerinstances"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a secureSourceManagerInstance and creates it. Returns the server's representation of the secureSourceManagerInstance, and an error, if there is any. -func (c *secureSourceManagerInstances) Create(ctx context.Context, secureSourceManagerInstance *v1alpha1.SecureSourceManagerInstance, opts v1.CreateOptions) (result *v1alpha1.SecureSourceManagerInstance, err error) { - result = &v1alpha1.SecureSourceManagerInstance{} - err = c.client.Post(). - Namespace(c.ns). - Resource("securesourcemanagerinstances"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(secureSourceManagerInstance). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a secureSourceManagerInstance and updates it. Returns the server's representation of the secureSourceManagerInstance, and an error, if there is any. -func (c *secureSourceManagerInstances) Update(ctx context.Context, secureSourceManagerInstance *v1alpha1.SecureSourceManagerInstance, opts v1.UpdateOptions) (result *v1alpha1.SecureSourceManagerInstance, err error) { - result = &v1alpha1.SecureSourceManagerInstance{} - err = c.client.Put(). - Namespace(c.ns). - Resource("securesourcemanagerinstances"). - Name(secureSourceManagerInstance.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(secureSourceManagerInstance). - Do(ctx). - Into(result) - return -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *secureSourceManagerInstances) UpdateStatus(ctx context.Context, secureSourceManagerInstance *v1alpha1.SecureSourceManagerInstance, opts v1.UpdateOptions) (result *v1alpha1.SecureSourceManagerInstance, err error) { - result = &v1alpha1.SecureSourceManagerInstance{} - err = c.client.Put(). - Namespace(c.ns). - Resource("securesourcemanagerinstances"). - Name(secureSourceManagerInstance.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(secureSourceManagerInstance). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the secureSourceManagerInstance and deletes it. Returns an error if one occurs. -func (c *secureSourceManagerInstances) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("securesourcemanagerinstances"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *secureSourceManagerInstances) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Namespace(c.ns). - Resource("securesourcemanagerinstances"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched secureSourceManagerInstance. -func (c *secureSourceManagerInstances) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.SecureSourceManagerInstance, err error) { - result = &v1alpha1.SecureSourceManagerInstance{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("securesourcemanagerinstances"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/pkg/controller/dcl/controller.go b/pkg/controller/dcl/controller.go index cd3447704c..682e23bdab 100644 --- a/pkg/controller/dcl/controller.go +++ b/pkg/controller/dcl/controller.go @@ -27,7 +27,7 @@ import ( "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/jitter" "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/lifecyclehandler" "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/metrics" - "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/predicate" + kccpredicate "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/predicate" "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/ratelimiter" "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/resourceactuation" "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/resourcewatcher" @@ -64,6 +64,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/handler" "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/manager" + "sigs.k8s.io/controller-runtime/pkg/predicate" "sigs.k8s.io/controller-runtime/pkg/reconcile" "sigs.k8s.io/controller-runtime/pkg/source" ) @@ -98,10 +99,15 @@ type Reconciler struct { } func Add(mgr manager.Manager, crd *apiextensions.CustomResourceDefinition, converter *conversion.Converter, - dclConfig *mmdcl.Config, serviceMappingLoader *servicemappingloader.ServiceMappingLoader, defaulters []k8s.Defaulter, jitterGenerator jitter.Generator) (k8s.SchemaReferenceUpdater, error) { + dclConfig *mmdcl.Config, serviceMappingLoader *servicemappingloader.ServiceMappingLoader, defaulters []k8s.Defaulter, jitterGenerator jitter.Generator, + additionalPredicate predicate.Predicate) (k8s.SchemaReferenceUpdater, error) { if jitterGenerator == nil { return nil, fmt.Errorf("jitter generator not initialized") } + predicates := []predicate.Predicate{kccpredicate.UnderlyingResourceOutOfSyncPredicate{}} + if additionalPredicate != nil { + predicates = append(predicates, additionalPredicate) + } kind := crd.Spec.Names.Kind apiVersion := k8s.GetAPIVersionFromCRD(crd) controllerName := fmt.Sprintf("%v-controller", strings.ToLower(kind)) @@ -122,7 +128,7 @@ func Add(mgr manager.Manager, crd *apiextensions.CustomResourceDefinition, conve Named(controllerName). WithOptions(controller.Options{MaxConcurrentReconciles: k8s.ControllerMaxConcurrentReconciles, RateLimiter: ratelimiter.NewRateLimiter()}). WatchesRawSource(&source.Channel{Source: immediateReconcileRequests}, &handler.EnqueueRequestForObject{}). - For(obj, builder.OnlyMetadata, builder.WithPredicates(predicate.UnderlyingResourceOutOfSyncPredicate{})). + For(obj, builder.OnlyMetadata, builder.WithPredicates(predicates...)). Build(r) if err != nil { return nil, fmt.Errorf("error creating new controller: %w", err) diff --git a/pkg/controller/direct/bigqueryconnection/connection_controller.go b/pkg/controller/direct/bigqueryconnection/connection_controller.go new file mode 100644 index 0000000000..70a4604796 --- /dev/null +++ b/pkg/controller/direct/bigqueryconnection/connection_controller.go @@ -0,0 +1,307 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigqueryconnection + +import ( + "context" + "fmt" + "reflect" + + krm "github.com/GoogleCloudPlatform/k8s-config-connector/apis/bigqueryconnection/v1alpha1" + refs "github.com/GoogleCloudPlatform/k8s-config-connector/apis/refs/v1beta1" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/config" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/directbase" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/registry" + "github.com/google/uuid" + + gcp "cloud.google.com/go/bigquery/connection/apiv1" + + bigqueryconnectionpb "cloud.google.com/go/bigquery/connection/apiv1/connectionpb" + "google.golang.org/api/option" + "google.golang.org/protobuf/types/known/fieldmaskpb" + + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/klog/v2" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +const ( + ctrlName = "bigqueryconnection-controller" + serviceDomain = "//bigqueryconnection.googleapis.com" +) + +func init() { + registry.RegisterModel(krm.BigQueryConnectionConnectionGVK, NewModel) +} + +func NewModel(ctx context.Context, config *config.ControllerConfig) (directbase.Model, error) { + return &model{config: *config}, nil +} + +var _ directbase.Model = &model{} + +type model struct { + config config.ControllerConfig +} + +func (m *model) client(ctx context.Context) (*gcp.Client, error) { + var opts []option.ClientOption + opts, err := m.config.RESTClientOptions() + if err != nil { + return nil, err + } + gcpClient, err := gcp.NewRESTClient(ctx, opts...) + if err != nil { + return nil, fmt.Errorf("building bigqueryconnection client: %w", err) + } + return gcpClient, err +} + +func isValidUUID(value string) bool { + _, err := uuid.Parse(value) + return err == nil +} + +func (m *model) AdapterForObject(ctx context.Context, reader client.Reader, u *unstructured.Unstructured) (directbase.Adapter, error) { + obj := &krm.BigQueryConnectionConnection{} + if err := runtime.DefaultUnstructuredConverter.FromUnstructured(u.Object, &obj); err != nil { + return nil, fmt.Errorf("error converting to %T: %w", obj, err) + } + + projectRef, err := refs.ResolveProject(ctx, reader, obj, obj.Spec.ProjectRef) + if err != nil { + return nil, err + } + projectID := projectRef.ProjectID + if projectID == "" { + return nil, fmt.Errorf("cannot resolve project") + } + // Get location + location := obj.Spec.Location + + // Get desired service-generated ID from spec + desiredServiceID := direct.ValueOf(obj.Spec.ResourceID) + if desiredServiceID != "" { + if _, err := uuid.Parse(desiredServiceID); err != nil { + return nil, fmt.Errorf("spec.resourceID should be in a UUID format, got %s ", desiredServiceID) + } + } + + // Get externalReference + var id *BigQueryConnectionConnectionIdentity + externalRef := direct.ValueOf(obj.Status.ExternalRef) + if externalRef != "" { + id, err = asID(externalRef) + if err != nil { + return nil, err + } + + if id.Parent.Project != projectID { + return nil, fmt.Errorf("BigQueryConnectionConnection %s/%s has spec.projectRef changed, expect %s, got %s", + u.GetNamespace(), u.GetName(), id.Parent.Project, projectID) + } + if id.Parent.Location != location { + return nil, fmt.Errorf("BigQueryConnectionConnection %s/%s has spec.location changed, expect %s, got %s", + u.GetNamespace(), u.GetName(), id.Parent.Location, location) + } + + if desiredServiceID != "" && id.serviceGeneratedID != desiredServiceID { + // Service generated ID shall not be reset in the same BigQueryConnectionConnection. + // TODO: what if multiple BigQueryConnectionConnection points to the same GCP Connection? + return nil, fmt.Errorf("cannot reset `spec.resourceID` to %s, since it has already acquired the Connection %s", + desiredServiceID, id.serviceGeneratedID) + } + } else { + id = BuildIDWithServiceGeneratedID(projectID, location, desiredServiceID) + } + + // Get bigqueryconnection GCP client + gcpClient, err := m.client(ctx) + if err != nil { + return nil, err + } + return &Adapter{ + id: id, + gcpClient: gcpClient, + desired: obj, + }, nil +} + +func (m *model) AdapterForURL(ctx context.Context, url string) (directbase.Adapter, error) { + return nil, nil +} + +type Adapter struct { + id *BigQueryConnectionConnectionIdentity + gcpClient *gcp.Client + desired *krm.BigQueryConnectionConnection + actual *bigqueryconnectionpb.Connection +} + +var _ directbase.Adapter = &Adapter{} + +func (a *Adapter) Find(ctx context.Context) (bool, error) { + log := klog.FromContext(ctx).WithName(ctrlName) + + log.V(2).Info("getting BigQueryConnectionConnection", "name", a.id.AsExternalRef()) + + if a.id.serviceGeneratedID == "" { + // Cannot retrieve the Connection without ServiceGeneratedID, expecting to create a new Connection. + return false, nil + } + req := &bigqueryconnectionpb.GetConnectionRequest{Name: a.id.FullyQualifiedName()} + connectionpb, err := a.gcpClient.GetConnection(ctx, req) + if err != nil { + if direct.IsNotFound(err) { + return false, nil + } + return false, fmt.Errorf("getting BigQueryConnectionConnection %q: %w", a.id.FullyQualifiedName(), err) + } + + a.actual = connectionpb + return true, nil +} + +func (a *Adapter) Create(ctx context.Context, createOp *directbase.CreateOperation) error { + u := createOp.GetUnstructured() + + log := klog.FromContext(ctx).WithName(ctrlName) + log.V(2).Info("creating Connection", "name", a.id.AsExternalRef()) + mapCtx := &direct.MapContext{} + + desired := a.desired.DeepCopy() + resource := BigQueryConnectionConnectionSpec_ToProto(mapCtx, &desired.Spec) + if mapCtx.Err() != nil { + return mapCtx.Err() + } + + req := &bigqueryconnectionpb.CreateConnectionRequest{ + Parent: a.id.Parent.String(), + Connection: resource, + } + created, err := a.gcpClient.CreateConnection(ctx, req) + if err != nil { + return fmt.Errorf("creating Connection %s: %w", *a.id.AsExternalRef(), err) + } + log.V(2).Info("successfully created Connection", "name", created.Name) + + status := &krm.BigQueryConnectionConnectionStatus{} + status.ObservedState = BigQueryConnectionConnectionStatusObservedState_FromProto(mapCtx, created) + id := ParseNameFromGCP(created.Name) + a.id.serviceGeneratedID = id + if mapCtx.Err() != nil { + return mapCtx.Err() + } + status.ExternalRef = a.id.AsExternalRef() + return setStatus(u, status) +} + +func (a *Adapter) Update(ctx context.Context, updateOp *directbase.UpdateOperation) error { + u := updateOp.GetUnstructured() + + log := klog.FromContext(ctx).WithName(ctrlName) + log.V(2).Info("updating Connection", "name", a.id.AsExternalRef()) + mapCtx := &direct.MapContext{} + + updateMask := &fieldmaskpb.FieldMask{} + if !reflect.DeepEqual(a.desired.Spec.FriendlyName, a.actual.FriendlyName) { + updateMask.Paths = append(updateMask.Paths, "friendly_name") + } + if !reflect.DeepEqual(a.desired.Spec.Description, a.actual.Description) { + updateMask.Paths = append(updateMask.Paths, "description") + } + + desired := a.desired.DeepCopy() + resource := BigQueryConnectionConnectionSpec_ToProto(mapCtx, &desired.Spec) + if mapCtx.Err() != nil { + return mapCtx.Err() + } + + fqn := a.id.FullyQualifiedName() + req := &bigqueryconnectionpb.UpdateConnectionRequest{ + Name: fqn, + Connection: resource, + UpdateMask: updateMask, + } + updated, err := a.gcpClient.UpdateConnection(ctx, req) + if err != nil { + return fmt.Errorf("updating Connection %s: %w", fqn, err) + } + log.V(2).Info("successfully updated Connection", "name", fqn) + + status := &krm.BigQueryConnectionConnectionStatus{} + status.ObservedState = BigQueryConnectionConnectionStatusObservedState_FromProto(mapCtx, updated) + if mapCtx.Err() != nil { + return mapCtx.Err() + } + return setStatus(u, status) +} + +func (a *Adapter) Export(ctx context.Context) (*unstructured.Unstructured, error) { + if a.actual == nil { + return nil, fmt.Errorf("Find() not called") + } + u := &unstructured.Unstructured{} + + obj := &krm.BigQueryConnectionConnection{} + mapCtx := &direct.MapContext{} + obj.Spec = direct.ValueOf(BigQueryConnectionConnectionSpec_FromProto(mapCtx, a.actual)) + if mapCtx.Err() != nil { + return nil, mapCtx.Err() + } + obj.Spec.ProjectRef = &refs.ProjectRef{Name: a.id.Parent.Project} + obj.Spec.Location = a.id.Parent.Location + uObj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) + if err != nil { + return nil, err + } + u.Object = uObj + return u, nil +} + +// Delete implements the Adapter interface. +func (a *Adapter) Delete(ctx context.Context, deleteOp *directbase.DeleteOperation) (bool, error) { + log := klog.FromContext(ctx).WithName(ctrlName) + log.V(2).Info("deleting Connection", "name", a.id.AsExternalRef()) + + fqn := a.id.FullyQualifiedName() + req := &bigqueryconnectionpb.DeleteConnectionRequest{Name: fqn} + if err := a.gcpClient.DeleteConnection(ctx, req); err != nil { + return false, fmt.Errorf("deleting Connection %s: %w", fqn, err) + } + log.V(2).Info("successfully deleted Connection", "name", fqn) + return true, nil +} + +func setStatus(u *unstructured.Unstructured, typedStatus any) error { + status, err := runtime.DefaultUnstructuredConverter.ToUnstructured(typedStatus) + if err != nil { + return fmt.Errorf("error converting status to unstructured: %w", err) + } + + old, _, _ := unstructured.NestedMap(u.Object, "status") + if old != nil { + status["conditions"] = old["conditions"] + status["observedGeneration"] = old["observedGeneration"] + status["externalRef"] = old["externalRef"] + status["serviceGeneratedID"] = old["serviceGeneratedID"] + } + + u.Object["status"] = status + + return nil +} diff --git a/pkg/controller/direct/bigqueryconnection/connection_externalresource.go b/pkg/controller/direct/bigqueryconnection/connection_externalresource.go new file mode 100644 index 0000000000..5b32d811fc --- /dev/null +++ b/pkg/controller/direct/bigqueryconnection/connection_externalresource.go @@ -0,0 +1,77 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigqueryconnection + +import ( + "fmt" + "strings" +) + +// The Identifier for ConfigConnector to track the BigQueryConnectionConnection resource from the GCP service. +type BigQueryConnectionConnectionIdentity struct { + Parent *parent + serviceGeneratedID string +} + +type parent struct { + Project string + Location string +} + +func (p *parent) String() string { + return "projects/" + p.Project + "/locations/" + p.Location +} + +// FullyQualifiedName returns both parent and resource ID in the full url format. +func (c *BigQueryConnectionConnectionIdentity) FullyQualifiedName() string { + return fmt.Sprintf("%s/connections/%s", c.Parent, c.serviceGeneratedID) +} + +// AsExternalRef builds a externalRef from a BigQueryConnectionConnection +func (c *BigQueryConnectionConnectionIdentity) AsExternalRef() *string { + e := serviceDomain + "/" + c.Parent.String() + "/connections/" + c.serviceGeneratedID + return &e +} + +// asID builds a BigQueryConnectionConnectionIdentity from a `status.externalRef` +func asID(externalRef string) (*BigQueryConnectionConnectionIdentity, error) { + if !strings.HasPrefix(externalRef, serviceDomain) { + return nil, fmt.Errorf("externalRef should have prefix %s, got %s", serviceDomain, externalRef) + } + path := strings.TrimPrefix(externalRef, serviceDomain+"/") + tokens := strings.Split(path, "/") + + if len(tokens) != 6 || tokens[0] != "projects" || tokens[2] != "locations" || tokens[4] != "connections" { + return nil, fmt.Errorf("externalRef should be %s/projects//locations//connections/, got %s", + serviceDomain, externalRef) + } + return &BigQueryConnectionConnectionIdentity{ + Parent: &parent{Project: tokens[1], Location: tokens[3]}, + serviceGeneratedID: tokens[5], + }, nil +} + +// BuildID builds the ID for ConfigConnector to track the BigQueryConnectionConnection resource from the GCP service. +func BuildIDWithServiceGeneratedID(project, location, serviceGeneratedID string) *BigQueryConnectionConnectionIdentity { + return &BigQueryConnectionConnectionIdentity{ + Parent: &parent{Project: project, Location: location}, + serviceGeneratedID: serviceGeneratedID, + } +} + +func ParseNameFromGCP(fullyQualifiedName string) string { + tokens := strings.Split(fullyQualifiedName, "/") + return tokens[5] +} diff --git a/pkg/controller/direct/bigqueryconnection/connection_mapping.go b/pkg/controller/direct/bigqueryconnection/connection_mapping.go new file mode 100644 index 0000000000..8f902826f8 --- /dev/null +++ b/pkg/controller/direct/bigqueryconnection/connection_mapping.go @@ -0,0 +1,69 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigqueryconnection + +import ( + pb "cloud.google.com/go/bigquery/connection/apiv1/connectionpb" + krm "github.com/GoogleCloudPlatform/k8s-config-connector/apis/bigqueryconnection/v1alpha1" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct" +) + +func CloudResourcePropertiesSpec_ToProto(mapCtx *direct.MapContext, in *krm.CloudResourcePropertiesSpec) *pb.CloudResourceProperties { + if in == nil { + return nil + } + out := &pb.CloudResourceProperties{} + return out +} + +func CloudResourcePropertiesSpec_FromProto(mapCtx *direct.MapContext, in *pb.CloudResourceProperties) *krm.CloudResourcePropertiesSpec { + if in == nil { + return nil + } + out := &krm.CloudResourcePropertiesSpec{} + return out +} + +func BigQueryConnectionConnectionStatusObservedState_FromProto(mapCtx *direct.MapContext, in *pb.Connection) *krm.BigQueryConnectionConnectionObservedState { + if in == nil { + return nil + } + out := &krm.BigQueryConnectionConnectionObservedState{} + out.FriendlyName = direct.LazyPtr(in.GetFriendlyName()) + out.Description = direct.LazyPtr(in.GetDescription()) + out.CloudResource = CloudResourcePropertiesStatus_FromProto(mapCtx, in.GetCloudResource()) + + out.HasCredential = direct.LazyPtr(in.GetHasCredential()) + return out +} + +func BigQueryConnectionConnectionSpec_ToProto(mapCtx *direct.MapContext, in *krm.BigQueryConnectionConnectionSpec) *pb.Connection { + if in == nil { + return nil + } + out := &pb.Connection{} + // MISSING: Name + out.FriendlyName = direct.ValueOf(in.FriendlyName) + out.Description = direct.ValueOf(in.Description) + out.Properties = &pb.Connection_CloudResource{} + + // MISSING: CloudSql + // MISSING: Aws + // MISSING: Azure + // MISSING: CloudSpanner + // MISSING: Spark + // MISSING: SalesforceDataCloud + return out +} diff --git a/pkg/controller/direct/bigqueryconnection/mapper.generated.go b/pkg/controller/direct/bigqueryconnection/mapper.generated.go new file mode 100644 index 0000000000..769a181f28 --- /dev/null +++ b/pkg/controller/direct/bigqueryconnection/mapper.generated.go @@ -0,0 +1,390 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigqueryconnection + +import ( + pb "cloud.google.com/go/bigquery/connection/apiv1/connectionpb" + krm "github.com/GoogleCloudPlatform/k8s-config-connector/apis/bigqueryconnection/v1alpha1" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct" +) + +func AwsAccessRole_FromProto(mapCtx *direct.MapContext, in *pb.AwsAccessRole) *krm.AwsAccessRole { + if in == nil { + return nil + } + out := &krm.AwsAccessRole{} + out.IamRoleID = direct.LazyPtr(in.GetIamRoleId()) + out.Identity = direct.LazyPtr(in.GetIdentity()) + return out +} +func AwsAccessRole_ToProto(mapCtx *direct.MapContext, in *krm.AwsAccessRole) *pb.AwsAccessRole { + if in == nil { + return nil + } + out := &pb.AwsAccessRole{} + out.IamRoleId = direct.ValueOf(in.IamRoleID) + out.Identity = direct.ValueOf(in.Identity) + return out +} +func AwsCrossAccountRole_FromProto(mapCtx *direct.MapContext, in *pb.AwsCrossAccountRole) *krm.AwsCrossAccountRole { + if in == nil { + return nil + } + out := &krm.AwsCrossAccountRole{} + out.IamRoleID = direct.LazyPtr(in.GetIamRoleId()) + out.IamUserID = direct.LazyPtr(in.GetIamUserId()) + out.ExternalID = direct.LazyPtr(in.GetExternalId()) + return out +} +func AwsCrossAccountRole_ToProto(mapCtx *direct.MapContext, in *krm.AwsCrossAccountRole) *pb.AwsCrossAccountRole { + if in == nil { + return nil + } + out := &pb.AwsCrossAccountRole{} + out.IamRoleId = direct.ValueOf(in.IamRoleID) + out.IamUserId = direct.ValueOf(in.IamUserID) + out.ExternalId = direct.ValueOf(in.ExternalID) + return out +} +func AwsProperties_FromProto(mapCtx *direct.MapContext, in *pb.AwsProperties) *krm.AwsProperties { + if in == nil { + return nil + } + out := &krm.AwsProperties{} + out.CrossAccountRole = AwsCrossAccountRole_FromProto(mapCtx, in.GetCrossAccountRole()) + out.AccessRole = AwsAccessRole_FromProto(mapCtx, in.GetAccessRole()) + return out +} +func AwsProperties_ToProto(mapCtx *direct.MapContext, in *krm.AwsProperties) *pb.AwsProperties { + if in == nil { + return nil + } + out := &pb.AwsProperties{} + if oneof := AwsCrossAccountRole_ToProto(mapCtx, in.CrossAccountRole); oneof != nil { + out.AuthenticationMethod = &pb.AwsProperties_CrossAccountRole{CrossAccountRole: oneof} + } + if oneof := AwsAccessRole_ToProto(mapCtx, in.AccessRole); oneof != nil { + out.AuthenticationMethod = &pb.AwsProperties_AccessRole{AccessRole: oneof} + } + return out +} +func AzureProperties_FromProto(mapCtx *direct.MapContext, in *pb.AzureProperties) *krm.AzureProperties { + if in == nil { + return nil + } + out := &krm.AzureProperties{} + out.Application = direct.LazyPtr(in.GetApplication()) + out.ClientID = direct.LazyPtr(in.GetClientId()) + out.ObjectID = direct.LazyPtr(in.GetObjectId()) + out.CustomerTenantID = direct.LazyPtr(in.GetCustomerTenantId()) + out.RedirectUri = direct.LazyPtr(in.GetRedirectUri()) + out.FederatedApplicationClientID = direct.LazyPtr(in.GetFederatedApplicationClientId()) + out.Identity = direct.LazyPtr(in.GetIdentity()) + return out +} +func AzureProperties_ToProto(mapCtx *direct.MapContext, in *krm.AzureProperties) *pb.AzureProperties { + if in == nil { + return nil + } + out := &pb.AzureProperties{} + out.Application = direct.ValueOf(in.Application) + out.ClientId = direct.ValueOf(in.ClientID) + out.ObjectId = direct.ValueOf(in.ObjectID) + out.CustomerTenantId = direct.ValueOf(in.CustomerTenantID) + out.RedirectUri = direct.ValueOf(in.RedirectUri) + out.FederatedApplicationClientId = direct.ValueOf(in.FederatedApplicationClientID) + out.Identity = direct.ValueOf(in.Identity) + return out +} +func BigQueryConnectionConnectionObservedState_FromProto(mapCtx *direct.MapContext, in *pb.Connection) *krm.BigQueryConnectionConnectionObservedState { + if in == nil { + return nil + } + out := &krm.BigQueryConnectionConnectionObservedState{} + // MISSING: Name + out.FriendlyName = direct.LazyPtr(in.GetFriendlyName()) + out.Description = direct.LazyPtr(in.GetDescription()) + // MISSING: CloudSql + // MISSING: Aws + // MISSING: Azure + // MISSING: CloudSpanner + out.CloudResource = CloudResourcePropertiesStatus_FromProto(mapCtx, in.GetCloudResource()) + // MISSING: Spark + // MISSING: SalesforceDataCloud + out.HasCredential = direct.LazyPtr(in.GetHasCredential()) + return out +} +func BigQueryConnectionConnectionObservedState_ToProto(mapCtx *direct.MapContext, in *krm.BigQueryConnectionConnectionObservedState) *pb.Connection { + if in == nil { + return nil + } + out := &pb.Connection{} + // MISSING: Name + out.FriendlyName = direct.ValueOf(in.FriendlyName) + out.Description = direct.ValueOf(in.Description) + // MISSING: CloudSql + // MISSING: Aws + // MISSING: Azure + // MISSING: CloudSpanner + if oneof := CloudResourcePropertiesStatus_ToProto(mapCtx, in.CloudResource); oneof != nil { + out.Properties = &pb.Connection_CloudResource{CloudResource: oneof} + } + // MISSING: Spark + // MISSING: SalesforceDataCloud + out.HasCredential = direct.ValueOf(in.HasCredential) + return out +} +func BigQueryConnectionConnectionSpec_FromProto(mapCtx *direct.MapContext, in *pb.Connection) *krm.BigQueryConnectionConnectionSpec { + if in == nil { + return nil + } + out := &krm.BigQueryConnectionConnectionSpec{} + // MISSING: Name + out.FriendlyName = direct.LazyPtr(in.GetFriendlyName()) + out.Description = direct.LazyPtr(in.GetDescription()) + // MISSING: CloudSql + // MISSING: Aws + // MISSING: Azure + // MISSING: CloudSpanner + // MISSING: Spark + // MISSING: SalesforceDataCloud + return out +} +func CloudResourceProperties_FromProto(mapCtx *direct.MapContext, in *pb.CloudResourceProperties) *krm.CloudResourceProperties { + if in == nil { + return nil + } + out := &krm.CloudResourceProperties{} + out.ServiceAccountID = direct.LazyPtr(in.GetServiceAccountId()) + return out +} +func CloudResourceProperties_ToProto(mapCtx *direct.MapContext, in *krm.CloudResourceProperties) *pb.CloudResourceProperties { + if in == nil { + return nil + } + out := &pb.CloudResourceProperties{} + out.ServiceAccountId = direct.ValueOf(in.ServiceAccountID) + return out +} +func CloudResourcePropertiesStatus_FromProto(mapCtx *direct.MapContext, in *pb.CloudResourceProperties) *krm.CloudResourcePropertiesStatus { + if in == nil { + return nil + } + out := &krm.CloudResourcePropertiesStatus{} + out.ServiceAccountID = direct.LazyPtr(in.GetServiceAccountId()) + return out +} +func CloudResourcePropertiesStatus_ToProto(mapCtx *direct.MapContext, in *krm.CloudResourcePropertiesStatus) *pb.CloudResourceProperties { + if in == nil { + return nil + } + out := &pb.CloudResourceProperties{} + out.ServiceAccountId = direct.ValueOf(in.ServiceAccountID) + return out +} +func CloudSpannerProperties_FromProto(mapCtx *direct.MapContext, in *pb.CloudSpannerProperties) *krm.CloudSpannerProperties { + if in == nil { + return nil + } + out := &krm.CloudSpannerProperties{} + out.Database = direct.LazyPtr(in.GetDatabase()) + out.UseParallelism = direct.LazyPtr(in.GetUseParallelism()) + out.MaxParallelism = direct.LazyPtr(in.GetMaxParallelism()) + out.UseServerlessAnalytics = direct.LazyPtr(in.GetUseServerlessAnalytics()) + out.UseDataBoost = direct.LazyPtr(in.GetUseDataBoost()) + out.DatabaseRole = direct.LazyPtr(in.GetDatabaseRole()) + return out +} +func CloudSpannerProperties_ToProto(mapCtx *direct.MapContext, in *krm.CloudSpannerProperties) *pb.CloudSpannerProperties { + if in == nil { + return nil + } + out := &pb.CloudSpannerProperties{} + out.Database = direct.ValueOf(in.Database) + out.UseParallelism = direct.ValueOf(in.UseParallelism) + out.MaxParallelism = direct.ValueOf(in.MaxParallelism) + out.UseServerlessAnalytics = direct.ValueOf(in.UseServerlessAnalytics) + out.UseDataBoost = direct.ValueOf(in.UseDataBoost) + out.DatabaseRole = direct.ValueOf(in.DatabaseRole) + return out +} +func CloudSqlCredential_FromProto(mapCtx *direct.MapContext, in *pb.CloudSqlCredential) *krm.CloudSqlCredential { + if in == nil { + return nil + } + out := &krm.CloudSqlCredential{} + out.Username = direct.LazyPtr(in.GetUsername()) + out.Password = direct.LazyPtr(in.GetPassword()) + return out +} +func CloudSqlCredential_ToProto(mapCtx *direct.MapContext, in *krm.CloudSqlCredential) *pb.CloudSqlCredential { + if in == nil { + return nil + } + out := &pb.CloudSqlCredential{} + out.Username = direct.ValueOf(in.Username) + out.Password = direct.ValueOf(in.Password) + return out +} +func CloudSqlProperties_FromProto(mapCtx *direct.MapContext, in *pb.CloudSqlProperties) *krm.CloudSqlProperties { + if in == nil { + return nil + } + out := &krm.CloudSqlProperties{} + out.InstanceID = direct.LazyPtr(in.GetInstanceId()) + out.Database = direct.LazyPtr(in.GetDatabase()) + out.Type = direct.Enum_FromProto(mapCtx, in.GetType()) + out.Credential = CloudSqlCredential_FromProto(mapCtx, in.GetCredential()) + out.ServiceAccountID = direct.LazyPtr(in.GetServiceAccountId()) + return out +} +func CloudSqlProperties_ToProto(mapCtx *direct.MapContext, in *krm.CloudSqlProperties) *pb.CloudSqlProperties { + if in == nil { + return nil + } + out := &pb.CloudSqlProperties{} + out.InstanceId = direct.ValueOf(in.InstanceID) + out.Database = direct.ValueOf(in.Database) + out.Type = direct.Enum_ToProto[pb.CloudSqlProperties_DatabaseType](mapCtx, in.Type) + out.Credential = CloudSqlCredential_ToProto(mapCtx, in.Credential) + out.ServiceAccountId = direct.ValueOf(in.ServiceAccountID) + return out +} +func Connection_FromProto(mapCtx *direct.MapContext, in *pb.Connection) *krm.Connection { + if in == nil { + return nil + } + out := &krm.Connection{} + out.Name = direct.LazyPtr(in.GetName()) + out.FriendlyName = direct.LazyPtr(in.GetFriendlyName()) + out.Description = direct.LazyPtr(in.GetDescription()) + out.CloudSql = CloudSqlProperties_FromProto(mapCtx, in.GetCloudSql()) + out.Aws = AwsProperties_FromProto(mapCtx, in.GetAws()) + out.Azure = AzureProperties_FromProto(mapCtx, in.GetAzure()) + out.CloudSpanner = CloudSpannerProperties_FromProto(mapCtx, in.GetCloudSpanner()) + out.CloudResource = CloudResourceProperties_FromProto(mapCtx, in.GetCloudResource()) + out.Spark = SparkProperties_FromProto(mapCtx, in.GetSpark()) + out.SalesforceDataCloud = SalesforceDataCloudProperties_FromProto(mapCtx, in.GetSalesforceDataCloud()) + out.CreationTime = direct.LazyPtr(in.GetCreationTime()) + out.LastModifiedTime = direct.LazyPtr(in.GetLastModifiedTime()) + out.HasCredential = direct.LazyPtr(in.GetHasCredential()) + return out +} +func Connection_ToProto(mapCtx *direct.MapContext, in *krm.Connection) *pb.Connection { + if in == nil { + return nil + } + out := &pb.Connection{} + out.Name = direct.ValueOf(in.Name) + out.FriendlyName = direct.ValueOf(in.FriendlyName) + out.Description = direct.ValueOf(in.Description) + if oneof := CloudSqlProperties_ToProto(mapCtx, in.CloudSql); oneof != nil { + out.Properties = &pb.Connection_CloudSql{CloudSql: oneof} + } + if oneof := AwsProperties_ToProto(mapCtx, in.Aws); oneof != nil { + out.Properties = &pb.Connection_Aws{Aws: oneof} + } + if oneof := AzureProperties_ToProto(mapCtx, in.Azure); oneof != nil { + out.Properties = &pb.Connection_Azure{Azure: oneof} + } + if oneof := CloudSpannerProperties_ToProto(mapCtx, in.CloudSpanner); oneof != nil { + out.Properties = &pb.Connection_CloudSpanner{CloudSpanner: oneof} + } + if oneof := CloudResourceProperties_ToProto(mapCtx, in.CloudResource); oneof != nil { + out.Properties = &pb.Connection_CloudResource{CloudResource: oneof} + } + if oneof := SparkProperties_ToProto(mapCtx, in.Spark); oneof != nil { + out.Properties = &pb.Connection_Spark{Spark: oneof} + } + if oneof := SalesforceDataCloudProperties_ToProto(mapCtx, in.SalesforceDataCloud); oneof != nil { + out.Properties = &pb.Connection_SalesforceDataCloud{SalesforceDataCloud: oneof} + } + out.CreationTime = direct.ValueOf(in.CreationTime) + out.LastModifiedTime = direct.ValueOf(in.LastModifiedTime) + out.HasCredential = direct.ValueOf(in.HasCredential) + return out +} +func MetastoreServiceConfig_FromProto(mapCtx *direct.MapContext, in *pb.MetastoreServiceConfig) *krm.MetastoreServiceConfig { + if in == nil { + return nil + } + out := &krm.MetastoreServiceConfig{} + out.MetastoreService = direct.LazyPtr(in.GetMetastoreService()) + return out +} +func MetastoreServiceConfig_ToProto(mapCtx *direct.MapContext, in *krm.MetastoreServiceConfig) *pb.MetastoreServiceConfig { + if in == nil { + return nil + } + out := &pb.MetastoreServiceConfig{} + out.MetastoreService = direct.ValueOf(in.MetastoreService) + return out +} +func SalesforceDataCloudProperties_FromProto(mapCtx *direct.MapContext, in *pb.SalesforceDataCloudProperties) *krm.SalesforceDataCloudProperties { + if in == nil { + return nil + } + out := &krm.SalesforceDataCloudProperties{} + out.InstanceUri = direct.LazyPtr(in.GetInstanceUri()) + out.Identity = direct.LazyPtr(in.GetIdentity()) + out.TenantID = direct.LazyPtr(in.GetTenantId()) + return out +} +func SalesforceDataCloudProperties_ToProto(mapCtx *direct.MapContext, in *krm.SalesforceDataCloudProperties) *pb.SalesforceDataCloudProperties { + if in == nil { + return nil + } + out := &pb.SalesforceDataCloudProperties{} + out.InstanceUri = direct.ValueOf(in.InstanceUri) + out.Identity = direct.ValueOf(in.Identity) + out.TenantId = direct.ValueOf(in.TenantID) + return out +} +func SparkHistoryServerConfig_FromProto(mapCtx *direct.MapContext, in *pb.SparkHistoryServerConfig) *krm.SparkHistoryServerConfig { + if in == nil { + return nil + } + out := &krm.SparkHistoryServerConfig{} + out.DataprocCluster = direct.LazyPtr(in.GetDataprocCluster()) + return out +} +func SparkHistoryServerConfig_ToProto(mapCtx *direct.MapContext, in *krm.SparkHistoryServerConfig) *pb.SparkHistoryServerConfig { + if in == nil { + return nil + } + out := &pb.SparkHistoryServerConfig{} + out.DataprocCluster = direct.ValueOf(in.DataprocCluster) + return out +} +func SparkProperties_FromProto(mapCtx *direct.MapContext, in *pb.SparkProperties) *krm.SparkProperties { + if in == nil { + return nil + } + out := &krm.SparkProperties{} + out.ServiceAccountID = direct.LazyPtr(in.GetServiceAccountId()) + out.MetastoreServiceConfig = MetastoreServiceConfig_FromProto(mapCtx, in.GetMetastoreServiceConfig()) + out.SparkHistoryServerConfig = SparkHistoryServerConfig_FromProto(mapCtx, in.GetSparkHistoryServerConfig()) + return out +} +func SparkProperties_ToProto(mapCtx *direct.MapContext, in *krm.SparkProperties) *pb.SparkProperties { + if in == nil { + return nil + } + out := &pb.SparkProperties{} + out.ServiceAccountId = direct.ValueOf(in.ServiceAccountID) + out.MetastoreServiceConfig = MetastoreServiceConfig_ToProto(mapCtx, in.MetastoreServiceConfig) + out.SparkHistoryServerConfig = SparkHistoryServerConfig_ToProto(mapCtx, in.SparkHistoryServerConfig) + return out +} diff --git a/pkg/controller/direct/bigquerydatatransfer/bigquerydatatransfer_mappings.go b/pkg/controller/direct/bigquerydatatransfer/bigquerydatatransfer_mappings.go new file mode 100644 index 0000000000..60b72dc612 --- /dev/null +++ b/pkg/controller/direct/bigquerydatatransfer/bigquerydatatransfer_mappings.go @@ -0,0 +1,133 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquerydatatransfer + +import ( + pb "cloud.google.com/go/bigquery/datatransfer/apiv1/datatransferpb" + krm "github.com/GoogleCloudPlatform/k8s-config-connector/apis/bigquerydatatransfer/v1alpha1" + refv1beta1 "github.com/GoogleCloudPlatform/k8s-config-connector/apis/refs/v1beta1" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct" + "google.golang.org/protobuf/types/known/structpb" + "google.golang.org/protobuf/types/known/wrapperspb" +) + +func BigQueryDataTransferConfigObservedState_FromProto(mapCtx *direct.MapContext, in *pb.TransferConfig) *krm.BigQueryDataTransferConfigObservedState { + if in == nil { + return nil + } + out := &krm.BigQueryDataTransferConfigObservedState{} + out.Name = direct.LazyPtr(in.GetName()) + out.UpdateTime = direct.StringTimestamp_FromProto(mapCtx, in.GetUpdateTime()) + out.NextRunTime = direct.StringTimestamp_FromProto(mapCtx, in.GetNextRunTime()) + out.State = direct.Enum_FromProto(mapCtx, in.GetState()) + out.DatasetRegion = direct.LazyPtr(in.GetDatasetRegion()) + out.OwnerInfo = UserInfo_FromProto(mapCtx, in.GetOwnerInfo()) + return out +} +func BigQueryDataTransferConfigObservedState_ToProto(mapCtx *direct.MapContext, in *krm.BigQueryDataTransferConfigObservedState) *pb.TransferConfig { + if in == nil { + return nil + } + out := &pb.TransferConfig{} + out.Name = direct.ValueOf(in.Name) + out.UpdateTime = direct.StringTimestamp_ToProto(mapCtx, in.UpdateTime) + out.NextRunTime = direct.StringTimestamp_ToProto(mapCtx, in.NextRunTime) + out.State = direct.Enum_ToProto[pb.TransferState](mapCtx, in.State) + out.DatasetRegion = direct.ValueOf(in.DatasetRegion) + out.OwnerInfo = UserInfo_ToProto(mapCtx, in.OwnerInfo) + return out +} +func BigQueryDataTransferConfigSpec_FromProto(mapCtx *direct.MapContext, in *pb.TransferConfig) *krm.BigQueryDataTransferConfigSpec { + if in == nil { + return nil + } + out := &krm.BigQueryDataTransferConfigSpec{} + out.DatasetRef = refv1beta1.BigQueryDatasetRef{External: in.GetDestinationDatasetId()} + out.DisplayName = direct.LazyPtr(in.GetDisplayName()) + out.DataSourceID = direct.LazyPtr(in.GetDataSourceId()) + out.Params = Params_FromProto(mapCtx, in.GetParams()) + out.Schedule = direct.LazyPtr(in.GetSchedule()) + out.ScheduleOptions = ScheduleOptions_FromProto(mapCtx, in.GetScheduleOptions()) + out.DataRefreshWindowDays = direct.LazyPtr(in.GetDataRefreshWindowDays()) + out.Disabled = direct.LazyPtr(in.GetDisabled()) + out.UserID = direct.LazyPtr(in.GetUserId()) + out.PubSubTopicRef = refv1beta1.PubSubTopicRef{External: in.GetNotificationPubsubTopic()} + out.EmailPreferences = EmailPreferences_FromProto(mapCtx, in.GetEmailPreferences()) + out.EncryptionConfiguration = EncryptionConfiguration_FromProto(mapCtx, in.GetEncryptionConfiguration()) + return out +} +func BigQueryDataTransferConfigSpec_ToProto(mapCtx *direct.MapContext, in *krm.BigQueryDataTransferConfigSpec) *pb.TransferConfig { + if in == nil { + return nil + } + out := &pb.TransferConfig{} + out.Destination = &pb.TransferConfig_DestinationDatasetId{DestinationDatasetId: in.DatasetRef.External} + out.DisplayName = direct.ValueOf(in.DisplayName) + out.DataSourceId = direct.ValueOf(in.DataSourceID) + out.Params = Params_ToProto(mapCtx, in.Params) + out.Schedule = direct.ValueOf(in.Schedule) + out.ScheduleOptions = ScheduleOptions_ToProto(mapCtx, in.ScheduleOptions) + out.DataRefreshWindowDays = direct.ValueOf(in.DataRefreshWindowDays) + out.Disabled = direct.ValueOf(in.Disabled) + out.UserId = direct.ValueOf(in.UserID) + out.NotificationPubsubTopic = in.PubSubTopicRef.External + out.EmailPreferences = EmailPreferences_ToProto(mapCtx, in.EmailPreferences) + out.EncryptionConfiguration = EncryptionConfiguration_ToProto(mapCtx, in.EncryptionConfiguration) + return out +} +func EncryptionConfiguration_FromProto(mapCtx *direct.MapContext, in *pb.EncryptionConfiguration) *krm.EncryptionConfiguration { + if in == nil { + return nil + } + out := &krm.EncryptionConfiguration{} + out.KmsKeyRef = refv1beta1.KMSCryptoKeyRef{External: in.GetKmsKeyName().String()} + return out +} +func EncryptionConfiguration_ToProto(mapCtx *direct.MapContext, in *krm.EncryptionConfiguration) *pb.EncryptionConfiguration { + if in == nil { + return nil + } + out := &pb.EncryptionConfiguration{} + out.KmsKeyName = &wrapperspb.StringValue{Value: in.KmsKeyRef.External} + return out +} +func Params_FromProto(mapCtx *direct.MapContext, in *structpb.Struct) map[string]string { + if in == nil { + return nil + } + out := make(map[string]string) + for k, v := range in.GetFields() { + // TODO: if we need to support more types, we need to change KRM type of Params to map[string]interface{} + if stringValue, ok := v.Kind.(*structpb.Value_StringValue); ok { + out[k] = stringValue.StringValue + } else { + mapCtx.Errorf("unexpected non-string value for key %s", k) + } + } + return out +} +func Params_ToProto(mapCtx *direct.MapContext, in map[string]string) *structpb.Struct { + if in == nil { + return nil + } + out := &structpb.Struct{ + Fields: map[string]*structpb.Value{}, + } + for k, v := range in { + // TODO: if we need to support more types, we need to change KRM type of Params to map[string]interface{} + out.Fields[k] = structpb.NewStringValue(v) + } + return out +} diff --git a/pkg/controller/direct/bigquerydatatransfer/mapper.generated.go b/pkg/controller/direct/bigquerydatatransfer/mapper.generated.go new file mode 100644 index 0000000000..e4c6d2608a --- /dev/null +++ b/pkg/controller/direct/bigquerydatatransfer/mapper.generated.go @@ -0,0 +1,74 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package bigquerydatatransfer + +import ( + pb "cloud.google.com/go/bigquery/datatransfer/apiv1/datatransferpb" + krm "github.com/GoogleCloudPlatform/k8s-config-connector/apis/bigquerydatatransfer/v1alpha1" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct" +) + +func EmailPreferences_FromProto(mapCtx *direct.MapContext, in *pb.EmailPreferences) *krm.EmailPreferences { + if in == nil { + return nil + } + out := &krm.EmailPreferences{} + out.EnableFailureEmail = direct.LazyPtr(in.GetEnableFailureEmail()) + return out +} +func EmailPreferences_ToProto(mapCtx *direct.MapContext, in *krm.EmailPreferences) *pb.EmailPreferences { + if in == nil { + return nil + } + out := &pb.EmailPreferences{} + out.EnableFailureEmail = direct.ValueOf(in.EnableFailureEmail) + return out +} +func ScheduleOptions_FromProto(mapCtx *direct.MapContext, in *pb.ScheduleOptions) *krm.ScheduleOptions { + if in == nil { + return nil + } + out := &krm.ScheduleOptions{} + out.DisableAutoScheduling = direct.LazyPtr(in.GetDisableAutoScheduling()) + out.StartTime = direct.StringTimestamp_FromProto(mapCtx, in.GetStartTime()) + out.EndTime = direct.StringTimestamp_FromProto(mapCtx, in.GetEndTime()) + return out +} +func ScheduleOptions_ToProto(mapCtx *direct.MapContext, in *krm.ScheduleOptions) *pb.ScheduleOptions { + if in == nil { + return nil + } + out := &pb.ScheduleOptions{} + out.DisableAutoScheduling = direct.ValueOf(in.DisableAutoScheduling) + out.StartTime = direct.StringTimestamp_ToProto(mapCtx, in.StartTime) + out.EndTime = direct.StringTimestamp_ToProto(mapCtx, in.EndTime) + return out +} +func UserInfo_FromProto(mapCtx *direct.MapContext, in *pb.UserInfo) *krm.UserInfo { + if in == nil { + return nil + } + out := &krm.UserInfo{} + out.Email = in.Email + return out +} +func UserInfo_ToProto(mapCtx *direct.MapContext, in *krm.UserInfo) *pb.UserInfo { + if in == nil { + return nil + } + out := &pb.UserInfo{} + out.Email = in.Email + return out +} diff --git a/pkg/controller/direct/cloudbuild/workerpool_mappings.go b/pkg/controller/direct/cloudbuild/workerpool_mappings.go index a844ddb86d..46c3157c43 100644 --- a/pkg/controller/direct/cloudbuild/workerpool_mappings.go +++ b/pkg/controller/direct/cloudbuild/workerpool_mappings.go @@ -30,8 +30,8 @@ func CloudBuildWorkerPoolObservedState_FromProto(mapCtx *direct.MapContext, in * } out := &krm.CloudBuildWorkerPoolObservedState{} out.ETag = direct.LazyPtr(in.Etag) - out.CreateTime = direct.ToOpenAPIDateTime(in.GetCreateTime()) - out.UpdateTime = direct.ToOpenAPIDateTime(in.GetUpdateTime()) + out.CreateTime = direct.StringTimestamp_FromProto(mapCtx, in.GetCreateTime()) + out.UpdateTime = direct.StringTimestamp_FromProto(mapCtx, in.GetUpdateTime()) privateConfig := in.GetPrivatePoolV1Config() if privateConfig != nil { diff --git a/pkg/controller/direct/compute/forwardingrule_controller.go b/pkg/controller/direct/compute/forwardingrule_controller.go index 98ea06eef7..c1d3aa4d2d 100644 --- a/pkg/controller/direct/compute/forwardingrule_controller.go +++ b/pkg/controller/direct/compute/forwardingrule_controller.go @@ -142,6 +142,16 @@ func (m *forwardingRuleModel) AdapterForObject(ctx context.Context, reader clien obj.Spec.Target.TargetHTTPProxyRef.External = targetHTTPProxyRef.External } + // Get target ComputeTargetHTTPSProxy + if obj.Spec.Target.TargetHTTPSProxyRef != nil { + targetHTTPSProxyRef, err := ResolveComputeTargetHTTPSProxy(ctx, reader, obj, obj.Spec.Target.TargetHTTPSProxyRef) + if err != nil { + return nil, err + + } + obj.Spec.Target.TargetHTTPSProxyRef.External = targetHTTPSProxyRef.External + } + // Get target TargetVPNGateway if obj.Spec.Target.TargetVPNGatewayRef != nil { targetVPNGatewayRef, err := ResolveComputeTargetVPNGateway(ctx, reader, obj, obj.Spec.Target.TargetVPNGatewayRef) @@ -151,6 +161,26 @@ func (m *forwardingRuleModel) AdapterForObject(ctx context.Context, reader clien } obj.Spec.Target.TargetVPNGatewayRef.External = targetVPNGatewayRef.External } + + // Get target SSLProxy + if obj.Spec.Target.TargetSSLProxyRef != nil { + targetSSLProxyRef, err := ResolveComputeTargetSSLProxy(ctx, reader, obj, obj.Spec.Target.TargetSSLProxyRef) + if err != nil { + return nil, err + + } + obj.Spec.Target.TargetSSLProxyRef.External = targetSSLProxyRef.External + } + + // Get target TCPProxy + if obj.Spec.Target.TargetTCPProxyRef != nil { + targetTCPProxyRef, err := ResolveComputeTargetTCPProxy(ctx, reader, obj, obj.Spec.Target.TargetTCPProxyRef) + if err != nil { + return nil, err + + } + obj.Spec.Target.TargetTCPProxyRef.External = targetTCPProxyRef.External + } } // Get location diff --git a/pkg/controller/direct/compute/forwardingrule_externalresource.go b/pkg/controller/direct/compute/forwardingrule_externalresource.go index f16f66916c..f9cbd5f0c2 100644 --- a/pkg/controller/direct/compute/forwardingrule_externalresource.go +++ b/pkg/controller/direct/compute/forwardingrule_externalresource.go @@ -36,7 +36,7 @@ func (c *ForwardingRuleIdentity) FullyQualifiedName() string { if c.location == "global" { return fmt.Sprintf("projects/%s/global/forwardingrules/%s", c.project, c.forwardingRule) } else { - return fmt.Sprintf("projects/%s/locations/%s/forwardingrules/%s", c.project, c.location, c.forwardingRule) + return fmt.Sprintf("projects/%s/regions/%s/forwardingrules/%s", c.project, c.location, c.forwardingRule) } } @@ -53,14 +53,14 @@ func asID(externalRef string) (*ForwardingRuleIdentity, error) { } path := strings.TrimPrefix(externalRef, serviceDomain+"/") tokens := strings.Split(path, "/") - if len(tokens) == 5 || tokens[0] == "projects" || tokens[2] == "global" || tokens[3] == "forwardingrules" { + if len(tokens) == 5 && tokens[0] == "projects" && tokens[2] == "global" && tokens[3] == "forwardingrules" { return &ForwardingRuleIdentity{ project: tokens[1], location: "global", forwardingRule: tokens[4], }, nil } - if len(tokens) == 6 || tokens[0] == "projects" || tokens[2] == "locations" || tokens[4] == "forwardingrules" { + if len(tokens) == 6 && tokens[0] == "projects" && tokens[2] == "regions" && tokens[4] == "forwardingrules" { return &ForwardingRuleIdentity{ project: tokens[1], location: tokens[3], diff --git a/pkg/controller/direct/compute/mapper.generated.go b/pkg/controller/direct/compute/mapper.generated.go index 4067c4c591..29dd3cec21 100644 --- a/pkg/controller/direct/compute/mapper.generated.go +++ b/pkg/controller/direct/compute/mapper.generated.go @@ -27,36 +27,36 @@ func ComputeForwardingRuleSpec_FromProto(mapCtx *direct.MapContext, in *pb.Forwa } out := &krm.ComputeForwardingRuleSpec{} out.IpAddress = ComputeForwardingRuleSpec_IpAddress_FromProto(mapCtx, in.GetIPAddress()) - out.IpProtocol = direct.LazyPtr(in.GetIPProtocol()) - out.AllPorts = direct.LazyPtr(in.GetAllPorts()) - out.AllowGlobalAccess = direct.LazyPtr(in.GetAllowGlobalAccess()) - out.AllowPscGlobalAccess = direct.LazyPtr(in.GetAllowPscGlobalAccess()) + out.IpProtocol = in.IPProtocol + out.AllPorts = in.AllPorts + out.AllowGlobalAccess = in.AllowGlobalAccess + out.AllowPscGlobalAccess = in.AllowPscGlobalAccess out.BackendServiceRef = ComputeForwardingRuleSpec_BackendSeriviceRef_FromProto(mapCtx, in.GetBackendService()) // MISSING: BaseForwardingRule // MISSING: CreationTimestamp - out.Description = direct.LazyPtr(in.GetDescription()) + out.Description = in.Description // MISSING: Fingerprint // MISSING: Id // MISSING: IpCollection - out.IpVersion = direct.LazyPtr(in.GetIpVersion()) - out.IsMirroringCollector = direct.LazyPtr(in.GetIsMirroringCollector()) + out.IpVersion = in.IpVersion + out.IsMirroringCollector = in.IsMirroringCollector // MISSING: Kind // MISSING: LabelFingerprint // MISSING: Labels - out.LoadBalancingScheme = direct.LazyPtr(in.GetLoadBalancingScheme()) + out.LoadBalancingScheme = in.LoadBalancingScheme out.MetadataFilters = direct.Slice_FromProto(mapCtx, in.MetadataFilters, ForwardingruleMetadataFilters_FromProto) // MISSING: Name out.NetworkRef = ComputeForwardingRuleSpec_NetworkRef_FromProto(mapCtx, in.GetNetwork()) - out.NetworkTier = direct.LazyPtr(in.GetNetworkTier()) - out.NoAutomateDnsZone = direct.LazyPtr(in.GetNoAutomateDnsZone()) - out.PortRange = direct.LazyPtr(in.GetPortRange()) + out.NetworkTier = in.NetworkTier + out.NoAutomateDnsZone = in.NoAutomateDnsZone + out.PortRange = in.PortRange out.Ports = in.Ports // MISSING: PscConnectionId // MISSING: PscConnectionStatus // MISSING: Region // MISSING: SelfLink out.ServiceDirectoryRegistrations = direct.Slice_FromProto(mapCtx, in.ServiceDirectoryRegistrations, ForwardingruleServiceDirectoryRegistrations_FromProto) - out.ServiceLabel = direct.LazyPtr(in.GetServiceLabel()) + out.ServiceLabel = in.ServiceLabel // MISSING: ServiceName out.SourceIpRanges = in.SourceIpRanges out.SubnetworkRef = ComputeForwardingRuleSpec_SubnetworkRef_FromProto(mapCtx, in.GetSubnetwork()) @@ -110,14 +110,13 @@ func ComputeForwardingRuleStatus_FromProto(mapCtx *direct.MapContext, in *pb.For return nil } out := &krm.ComputeForwardingRuleStatus{} - - out.BaseForwardingRule = direct.LazyPtr(in.GetBaseForwardingRule()) - out.CreationTimestamp = direct.LazyPtr(in.GetCreationTimestamp()) - out.LabelFingerprint = direct.LazyPtr(in.GetLabelFingerprint()) + out.BaseForwardingRule = in.BaseForwardingRule + out.CreationTimestamp = in.CreationTimestamp + out.LabelFingerprint = in.LabelFingerprint out.PscConnectionId = ComputeForwardingRuleStatus_PscConnectionId_FromProto(mapCtx, in.GetPscConnectionId()) - out.PscConnectionStatus = direct.LazyPtr(in.GetPscConnectionStatus()) - out.SelfLink = direct.LazyPtr(in.GetSelfLink()) - out.ServiceName = direct.LazyPtr(in.GetServiceName()) + out.PscConnectionStatus = in.PscConnectionStatus + out.SelfLink = in.SelfLink + out.ServiceName = in.ServiceName return out } func ComputeForwardingRuleStatus_ToProto(mapCtx *direct.MapContext, in *krm.ComputeForwardingRuleStatus) *pb.ForwardingRule { @@ -175,8 +174,8 @@ func ForwardingruleServiceDirectoryRegistrations_FromProto(mapCtx *direct.MapCon return nil } out := &krm.ForwardingruleServiceDirectoryRegistrations{} - out.Namespace = direct.LazyPtr(in.GetNamespace()) - out.Service = direct.LazyPtr(in.GetService()) + out.Namespace = in.Namespace + out.Service = in.Service // MISSING: ServiceDirectoryRegion return out } diff --git a/pkg/controller/direct/compute/refs.go b/pkg/controller/direct/compute/refs.go index 6022875ae6..b4ad9d062d 100644 --- a/pkg/controller/direct/compute/refs.go +++ b/pkg/controller/direct/compute/refs.go @@ -154,9 +154,12 @@ func ResolveComputeAddress(ctx context.Context, reader client.Reader, src client // targetField: address // See compute servicemappings for details - address, _, err := unstructured.NestedString(computeAddress.Object, "spec", "address") + // Because `spec.address` field is optional, we can't guarantee it always + // exists in a successfully reconciled ComputeAddress CR, so we should use + // the `status.observedState.address` instead. + address, _, err := unstructured.NestedString(computeAddress.Object, "status", "observedState", "address") if err != nil || address == "" { - return nil, fmt.Errorf("cannot get address for referenced %s %v (spec.address is empty)", computeAddress.GetKind(), computeAddress.GetNamespace()) + return nil, fmt.Errorf("cannot get address for referenced %s %v (status.observedState.address is empty)", computeAddress.GetKind(), computeAddress.GetNamespace()) } return &refs.ComputeAddressRef{ External: address}, nil diff --git a/pkg/controller/direct/compute/roundtrip_test.go b/pkg/controller/direct/compute/roundtrip_test.go new file mode 100644 index 0000000000..bd71c54308 --- /dev/null +++ b/pkg/controller/direct/compute/roundtrip_test.go @@ -0,0 +1,100 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package compute + +import ( + "math/rand" + "testing" + + pb "cloud.google.com/go/compute/apiv1/computepb" + + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/test/fuzz" + "github.com/google/go-cmp/cmp" + "google.golang.org/protobuf/encoding/prototext" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/testing/protocmp" + "k8s.io/apimachinery/pkg/util/sets" +) + +func FuzzComputeForwardingRuleSpec(f *testing.F) { + f.Fuzz(func(t *testing.T, seed int64) { + randStream := rand.New(rand.NewSource(seed)) + + p1 := &pb.ForwardingRule{} + fuzz.FillWithRandom(t, randStream, p1) + + // We don't expect output fields to round-trip + outputFields := sets.New(".etag") + + // A few fields are not implemented yet in KRM, don't test them + unimplementedFields := sets.New[string]() + + // Status fields + unimplementedFields.Insert(".creation_timestamp") + unimplementedFields.Insert(".fingerprint") + unimplementedFields.Insert(".label_fingerprint") + unimplementedFields.Insert(".psc_connection_id") + unimplementedFields.Insert(".psc_connection_status") + unimplementedFields.Insert(".self_link") + unimplementedFields.Insert(".service_name") + // Not supported in KRM + unimplementedFields.Insert(".base_forwarding_rule") + unimplementedFields.Insert(".id") + unimplementedFields.Insert(".ip_collection") + unimplementedFields.Insert(".kind") + unimplementedFields.Insert(".labels") + unimplementedFields.Insert(".name") + unimplementedFields.Insert(".service_directory_registrations", ".service_directory_region") + // KCC uses `location` instead of `region` + unimplementedFields.Insert(".region") + + // Skip target field in fuzz test. + // ComputeForwardingRuleSpec_Target_FromProto verifies the conversion of input strings into specified outputs. + // This fuzz test uses randomly generated strings as inputs, which may result the test to fail. + // We can verify this field by fixtures tests. + unimplementedFields.Insert(".target") + + // Remove any output only or known-unimplemented fields + clearFields := &fuzz.ClearFields{ + Paths: unimplementedFields.Union(outputFields), + } + fuzz.Visit("", p1.ProtoReflect(), nil, clearFields) + + r := &fuzz.ReplaceFields{} + r.Func = func(path string, val protoreflect.Value) (protoreflect.Value, bool) { + // TODO: Any values that must follow a pattern + return protoreflect.Value{}, false + } + fuzz.Visit("", p1.ProtoReflect(), nil, r) + + ctx := &direct.MapContext{} + k := ComputeForwardingRuleSpec_FromProto(ctx, p1) + if ctx.Err() != nil { + t.Fatalf("error mapping from proto to krm: %v", ctx.Err()) + } + + p2 := ComputeForwardingRuleSpec_ToProto(ctx, k) + if ctx.Err() != nil { + t.Fatalf("error mapping from krm to proto: %v", ctx.Err()) + } + + if diff := cmp.Diff(p1, p2, protocmp.Transform()); diff != "" { + t.Logf("p1 = %v", prototext.Format(p1)) + t.Logf("p2 = %v", prototext.Format(p2)) + t.Errorf("roundtrip failed; diff:\n%s", diff) + } + }) +} diff --git a/pkg/controller/direct/dataform/repository_mappings.go b/pkg/controller/direct/dataform/repository_mappings.go index 59c5aa822e..4a6a52d04e 100644 --- a/pkg/controller/direct/dataform/repository_mappings.go +++ b/pkg/controller/direct/dataform/repository_mappings.go @@ -67,6 +67,7 @@ func DataformRepositorySpec_ToProto(mapCtx *direct.MapContext, in *krm.DataformR if in.ServiceAccountRef != nil { out.ServiceAccount = in.ServiceAccountRef.External } + out.SetAuthenticatedUserAdmin = in.SetAuthenticatedUserAdmin return out } @@ -87,7 +88,9 @@ func RepositoryGitRemoteSettings_FromProto(mapCtx *direct.MapContext, in *pb.Rep if inSshConfig := in.GetSshAuthenticationConfig(); inSshConfig != nil { out.SSHAuthenticationConfig = &krm.SSHAuthenticationConfig{} if inSshConfig.GetUserPrivateKeySecretVersion() != "" { - out.SSHAuthenticationConfig.UserPrivateKeySecretVersionRef.External = inSshConfig.GetUserPrivateKeySecretVersion() + out.SSHAuthenticationConfig.UserPrivateKeySecretVersionRef = &refs.SecretManagerSecretVersionRef{ + External: inSshConfig.GetUserPrivateKeySecretVersion(), + } } out.SSHAuthenticationConfig.HostPublicKey = inSshConfig.HostPublicKey diff --git a/pkg/controller/direct/dataform/roundtrip_test.go b/pkg/controller/direct/dataform/roundtrip_test.go new file mode 100644 index 0000000000..78cc0d5f38 --- /dev/null +++ b/pkg/controller/direct/dataform/roundtrip_test.go @@ -0,0 +1,68 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package dataform + +import ( + "math/rand" + "testing" + + dataformpb "cloud.google.com/go/dataform/apiv1beta1/dataformpb" + "k8s.io/apimachinery/pkg/util/sets" + + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/test/fuzz" + "github.com/google/go-cmp/cmp" + "google.golang.org/protobuf/encoding/prototext" + "google.golang.org/protobuf/testing/protocmp" +) + +func FuzzDataformRepositorySpec(f *testing.F) { + f.Fuzz(func(t *testing.T, seed int64) { + randStream := rand.New(rand.NewSource(seed)) + + p1 := &dataformpb.Repository{} + fuzz.FillWithRandom(t, randStream, p1) + + // A few fields are not implemented yet in KRM, don't test them + unimplementedFields := sets.New( + ".name", + ".labels", + ".git_remote_settings.token_status", // not supported by KCC anymore + ) + + // Remove any known-unimplemented fields + clearFields := &fuzz.ClearFields{ + Paths: unimplementedFields, + } + fuzz.Visit("", p1.ProtoReflect(), nil, clearFields) + + ctx := &direct.MapContext{} + k := DataformRepositorySpec_FromProto(ctx, p1) + if ctx.Err() != nil { + t.Fatalf("error mapping from proto to krm: %v", ctx.Err()) + } + + p2 := DataformRepositorySpec_ToProto(ctx, k) + if ctx.Err() != nil { + t.Fatalf("error mapping from krm to proto: %v", ctx.Err()) + } + + if diff := cmp.Diff(p1, p2, protocmp.Transform()); diff != "" { + t.Logf("p1 = %v", prototext.Format(p1)) + t.Logf("p2 = %v", prototext.Format(p2)) + t.Errorf("roundtrip failed; diff:\n%s", diff) + } + }) +} diff --git a/pkg/controller/direct/directbase/directbase_controller.go b/pkg/controller/direct/directbase/directbase_controller.go index c07f7857d1..9768454b7a 100644 --- a/pkg/controller/direct/directbase/directbase_controller.go +++ b/pkg/controller/direct/directbase/directbase_controller.go @@ -222,7 +222,9 @@ func (r *reconcileContext) doReconcile(ctx context.Context, u *unstructured.Unst // add finalizers for deletion defender to make sure we don't delete cloud provider resources when uninstalling if u.GetDeletionTimestamp().IsZero() { - k8s.EnsureFinalizers(u, k8s.ControllerFinalizerName, k8s.DeletionDefenderFinalizerName) + if err := r.ensureFinalizers(ctx, u); err != nil { + return false, nil + } } return false, nil @@ -282,7 +284,9 @@ func (r *reconcileContext) doReconcile(ctx context.Context, u *unstructured.Unst return false, r.handleDeleted(ctx, u) } - k8s.EnsureFinalizers(u, k8s.ControllerFinalizerName, k8s.DeletionDefenderFinalizerName) + if err := r.ensureFinalizers(ctx, u); err != nil { + return false, err + } // set the etag to an empty string, since IAMPolicy is the authoritative intent, KCC wants to overwrite the underlying policy regardless //policy.Spec.Etag = "" @@ -312,6 +316,21 @@ func (r *reconcileContext) doReconcile(ctx context.Context, u *unstructured.Unst return false, nil } +// ensureFinalizers will apply our finalizers to the object if they are not present. +// We update the kube-apiserver immediately if any changes are needed. +func (r *reconcileContext) ensureFinalizers(ctx context.Context, u *unstructured.Unstructured) error { + if k8s.EnsureFinalizers(u, k8s.ControllerFinalizerName, k8s.DeletionDefenderFinalizerName) { + // No change + return nil + } + + if err := r.Reconciler.Client.Update(ctx, u); err != nil { + return fmt.Errorf("updating finalizers: %w", err) + } + + return nil +} + func (r *reconcileContext) handleUpToDate(ctx context.Context, u *unstructured.Unstructured) error { resource, err := toK8sResource(u) if err != nil { diff --git a/pkg/controller/direct/firestore/client.go b/pkg/controller/direct/firestore/client.go new file mode 100644 index 0000000000..297dd2dd0c --- /dev/null +++ b/pkg/controller/direct/firestore/client.go @@ -0,0 +1,46 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "context" + "fmt" + + api "cloud.google.com/go/firestore/apiv1/admin" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/config" +) + +type gcpClient struct { + config config.ControllerConfig +} + +func newGCPClient(ctx context.Context, config *config.ControllerConfig) (*gcpClient, error) { + gcpClient := &gcpClient{ + config: *config, + } + return gcpClient, nil +} + +func (m *gcpClient) newFirestoreAdminClient(ctx context.Context) (*api.FirestoreAdminClient, error) { + opts, err := m.config.RESTClientOptions() + if err != nil { + return nil, err + } + client, err := api.NewFirestoreAdminRESTClient(ctx, opts...) + if err != nil { + return nil, fmt.Errorf("building firestore admin client: %w", err) + } + return client, err +} diff --git a/pkg/controller/direct/firestore/firestoredatabase_controller.go b/pkg/controller/direct/firestore/firestoredatabase_controller.go new file mode 100644 index 0000000000..50bb12561d --- /dev/null +++ b/pkg/controller/direct/firestore/firestoredatabase_controller.go @@ -0,0 +1,344 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "context" + "fmt" + "reflect" + + krm "github.com/GoogleCloudPlatform/k8s-config-connector/apis/firestore/v1alpha1" + refs "github.com/GoogleCloudPlatform/k8s-config-connector/apis/refs/v1beta1" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/config" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/directbase" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/registry" + + gcp "cloud.google.com/go/firestore/apiv1" + apiv1 "cloud.google.com/go/firestore/apiv1/admin" + firestorepb "cloud.google.com/go/firestore/apiv1/admin/adminpb" + "google.golang.org/api/option" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/fieldmaskpb" + + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/klog/v2" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +const ( + ctrlName = "firestoredatabase-controller" + serviceDomain = "//firestore.googleapis.com" +) + +func init() { + registry.RegisterModel(krm.FirestoreDatabaseGVK, NewModel) +} + +func NewModel(ctx context.Context, config *config.ControllerConfig) (directbase.Model, error) { + return &model{config: config}, nil +} + +var _ directbase.Model = &model{} + +type model struct { + config *config.ControllerConfig +} + +func (m *model) client(ctx context.Context) (*gcp.Client, error) { + var opts []option.ClientOption + if m.config.UserAgent != "" { + opts = append(opts, option.WithUserAgent(m.config.UserAgent)) + } + if m.config.HTTPClient != nil { + opts = append(opts, option.WithHTTPClient(m.config.HTTPClient)) + } + if m.config.UserProjectOverride && m.config.BillingProject != "" { + opts = append(opts, option.WithQuotaProject(m.config.BillingProject)) + } + + gcpClient, err := gcp.NewRESTClient(ctx, opts...) + if err != nil { + return nil, fmt.Errorf("building firestore client: %w", err) + } + return gcpClient, err +} + +func (m *model) AdapterForObject(ctx context.Context, reader client.Reader, u *unstructured.Unstructured) (directbase.Adapter, error) { + gcpClient, err := newGCPClient(ctx, m.config) + if err != nil { + return nil, err + } + firestoreAdminClient, err := gcpClient.newFirestoreAdminClient(ctx) + if err != nil { + return nil, err + } + + obj := &krm.FirestoreDatabase{} + if err := runtime.DefaultUnstructuredConverter.FromUnstructured(u.Object, &obj); err != nil { + return nil, fmt.Errorf("error converting to %T: %w", obj, err) + } + + // Get Resource ID + resourceID := direct.ValueOf(obj.Spec.ResourceID) + if resourceID == "" { + resourceID = obj.GetName() + } + if resourceID == "" { + return nil, fmt.Errorf("cannot resolve resource ID") + } + + // Get Project ID + projectRef, err := refs.ResolveProject(ctx, reader, obj, &obj.Spec.ProjectRef) + if err != nil { + return nil, err + } + projectID := projectRef.ProjectID + if projectID == "" { + return nil, fmt.Errorf("cannot resolve project") + } + + var id *FirestoreDatabaseIdentity + externalRef := direct.ValueOf(obj.Status.ExternalRef) + if externalRef == "" { + id = BuildID(projectID, resourceID) + } else { + id, err = asID(externalRef) + if err != nil { + return nil, err + } + + if id.project != projectID { + return nil, fmt.Errorf("FirestoreDatabase %s/%s has spec.projectRef changed, expect %s, got %s", + u.GetNamespace(), u.GetName(), id.project, projectID) + } + if id.firestoredatabase != resourceID { + return nil, fmt.Errorf("FirestoreDatabase %s/%s has metadata.name or spec.resourceID changed, expect %s, got %s", + u.GetNamespace(), u.GetName(), id.firestoredatabase, resourceID) + } + } + + return &Adapter{ + id: id, + firestoreAdminClient: firestoreAdminClient, + desired: obj, + }, nil +} + +func (m *model) AdapterForURL(ctx context.Context, url string) (directbase.Adapter, error) { + // TODO: Support URLs + return nil, nil +} + +type Adapter struct { + id *FirestoreDatabaseIdentity + firestoreAdminClient *apiv1.FirestoreAdminClient + desired *krm.FirestoreDatabase + actual *firestorepb.Database +} + +var _ directbase.Adapter = &Adapter{} + +func (a *Adapter) Find(ctx context.Context) (bool, error) { + log := klog.FromContext(ctx).WithName(ctrlName) + log.V(2).Info("getting FirestoreDatabase", "name", a.id.FullyQualifiedName()) + + if a.id == nil { + return false, nil + } + + req := &firestorepb.GetDatabaseRequest{Name: a.id.FullyQualifiedName()} + firestoredatabasepb, err := a.firestoreAdminClient.GetDatabase(ctx, req) + if err != nil { + if direct.IsNotFound(err) { + return false, nil + } + return false, fmt.Errorf("getting FirestoreDatabase %q: %w", a.id.FullyQualifiedName(), err) + } + + a.actual = firestoredatabasepb + return true, nil +} + +func (a *Adapter) Create(ctx context.Context, createOp *directbase.CreateOperation) error { + u := createOp.GetUnstructured() + + log := klog.FromContext(ctx).WithName(ctrlName) + log.V(2).Info("creating FirestoreDatabase", "name", a.id.FullyQualifiedName()) + mapCtx := &direct.MapContext{} + + projectID := a.id.project + if projectID == "" { + return fmt.Errorf("project is empty") + } + if a.id.firestoredatabase == "" { + return fmt.Errorf("resourceID is empty") + } + + desired := a.desired.DeepCopy() + resource := FirestoreDatabaseSpec_ToProto(mapCtx, &desired.Spec) + if mapCtx.Err() != nil { + return mapCtx.Err() + } + resource.Name = a.id.FullyQualifiedName() + + req := &firestorepb.CreateDatabaseRequest{ + Parent: a.id.Parent(), + Database: resource, + DatabaseId: a.id.firestoredatabase, + } + op, err := a.firestoreAdminClient.CreateDatabase(ctx, req) + if err != nil { + return fmt.Errorf("creating FirestoreDatabase %s: %w", a.id.FullyQualifiedName(), err) + } + + created, err := op.Wait(ctx) + if err != nil { + return fmt.Errorf("FirestoreDatabase %s waiting creation: %w", a.id.FullyQualifiedName(), err) + } + log.V(2).Info("successfully created FirestoreDatabase", "name", a.id.FullyQualifiedName()) + + status := &krm.FirestoreDatabaseStatus{} + status.ObservedState = FirestoreDatabaseObservedState_FromProto(mapCtx, created) + if mapCtx.Err() != nil { + return mapCtx.Err() + } + status.ExternalRef = a.id.AsExternalRef() + return setStatus(u, status) +} + +func (a *Adapter) Update(ctx context.Context, updateOp *directbase.UpdateOperation) error { + u := updateOp.GetUnstructured() + + log := klog.FromContext(ctx).WithName(ctrlName) + log.V(2).Info("updating FirestoreDatabase", "name", a.id.FullyQualifiedName()) + mapCtx := &direct.MapContext{} + + desired := a.desired.DeepCopy() + resource := FirestoreDatabaseSpec_ToProto(mapCtx, &desired.Spec) + if mapCtx.Err() != nil { + return mapCtx.Err() + } + + newDb := proto.Clone(a.actual).(*firestorepb.Database) + + updateMask := &fieldmaskpb.FieldMask{} + if !reflect.DeepEqual(resource.ConcurrencyMode, a.actual.ConcurrencyMode) { + newDb.ConcurrencyMode = resource.ConcurrencyMode + updateMask.Paths = append(updateMask.Paths, "concurrency_mode") + } + if !reflect.DeepEqual(resource.PointInTimeRecoveryEnablement, a.actual.PointInTimeRecoveryEnablement) { + newDb.PointInTimeRecoveryEnablement = resource.PointInTimeRecoveryEnablement + updateMask.Paths = append(updateMask.Paths, "point_in_time_recovery_enablement") + } + + if len(updateMask.Paths) == 0 { + return nil + } + + req := &firestorepb.UpdateDatabaseRequest{ + Database: newDb, + UpdateMask: updateMask, + } + op, err := a.firestoreAdminClient.UpdateDatabase(ctx, req) + if err != nil { + return fmt.Errorf("updating FirestoreDatabase %q: %w", a.id.FullyQualifiedName(), err) + } + + updated, err := op.Wait(ctx) + if err != nil { + return fmt.Errorf("FirestoreDatabase %s waiting update: %w", a.id.FullyQualifiedName(), err) + } + log.V(2).Info("successfully updated FirestoreDatabase", "name", a.id.FullyQualifiedName()) + + status := &krm.FirestoreDatabaseStatus{} + status.ObservedState = FirestoreDatabaseObservedState_FromProto(mapCtx, updated) + if mapCtx.Err() != nil { + return mapCtx.Err() + } + return setStatus(u, status) +} + +func (a *Adapter) Export(ctx context.Context) (*unstructured.Unstructured, error) { + if a.actual == nil { + return nil, fmt.Errorf("FirestoreDatabase %q not found", a.id.FullyQualifiedName()) + } + + mapCtx := &direct.MapContext{} + dbSpec := FirestoreDatabaseSpec_FromProto(mapCtx, a.actual) + + db := &krm.FirestoreDatabase{ + Spec: *dbSpec, + } + obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(db) + if err != nil { + return nil, fmt.Errorf("converting FirestoreDatabase to unstructured failed: %w", err) + } + + u := &unstructured.Unstructured{ + Object: obj, + } + u.SetName(a.id.firestoredatabase) + u.SetGroupVersionKind(krm.FirestoreDatabaseGVK) + + return u, nil +} + +// Delete implements the Adapter interface. +func (a *Adapter) Delete(ctx context.Context, deleteOp *directbase.DeleteOperation) (bool, error) { + log := klog.FromContext(ctx).WithName(ctrlName) + log.V(2).Info("deleting FirestoreDatabase", "name", a.id.FullyQualifiedName()) + + if a.id.firestoredatabase == "" { + return false, nil + } + if a.actual == nil { + return false, fmt.Errorf("FirestoreDatabase %s not found in GCP", a.id.FullyQualifiedName()) + } + req := &firestorepb.DeleteDatabaseRequest{ + Name: a.id.FullyQualifiedName(), + Etag: a.actual.Etag, + } + op, err := a.firestoreAdminClient.DeleteDatabase(ctx, req) + if err != nil { + return false, fmt.Errorf("deleting FirestoreDatabase %s: %w", a.id.FullyQualifiedName(), err) + } + log.V(2).Info("successfully deleted FirestoreDatabase", "name", a.id.FullyQualifiedName()) + + _, err = op.Wait(ctx) + if err != nil { + return false, fmt.Errorf("waiting delete FirestoreDatabase %s: %w", a.id.FullyQualifiedName(), err) + } + return true, nil +} + +func setStatus(u *unstructured.Unstructured, typedStatus any) error { + status, err := runtime.DefaultUnstructuredConverter.ToUnstructured(typedStatus) + if err != nil { + return fmt.Errorf("error converting status to unstructured: %w", err) + } + + old, _, _ := unstructured.NestedMap(u.Object, "status") + if old != nil { + status["conditions"] = old["conditions"] + status["observedGeneration"] = old["observedGeneration"] + status["externalRef"] = old["externalRef"] + } + + u.Object["status"] = status + + return nil +} diff --git a/pkg/controller/direct/firestore/firestoredatabase_externalresource.go b/pkg/controller/direct/firestore/firestoredatabase_externalresource.go new file mode 100644 index 0000000000..02ed463b62 --- /dev/null +++ b/pkg/controller/direct/firestore/firestoredatabase_externalresource.go @@ -0,0 +1,68 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + "fmt" + "strings" +) + +type FirestoreDatabaseIdentity struct { + project string + location string + firestoredatabase string +} + +// Parent builds a FirestoreDatabase parent +func (c *FirestoreDatabaseIdentity) Parent() string { + return "projects/" + c.project +} + +// FullyQualifiedName builds a FirestoreDatabase resource fully qualified name +func (c *FirestoreDatabaseIdentity) FullyQualifiedName() string { + return c.Parent() + "/databases/" + c.firestoredatabase +} + +// AsExternalRef builds a externalRef from a FirestoreDatabase +func (c *FirestoreDatabaseIdentity) AsExternalRef() *string { + e := serviceDomain + "/" + c.FullyQualifiedName() + return &e +} + +// asID builds a FirestoreDatabaseIdentity from a external reference +func asID(externalRef string) (*FirestoreDatabaseIdentity, error) { + if !strings.HasPrefix(externalRef, serviceDomain) { + return nil, fmt.Errorf("externalRef should have prefix %s, got %s", serviceDomain, externalRef) + } + path := strings.TrimPrefix(externalRef, serviceDomain+"/") + tokens := strings.Split(path, "/") + + if len(tokens) != 4 || tokens[0] != "projects" || tokens[2] != "databases" { + return nil, fmt.Errorf("externalRef should be %s/projects//databases/, got %s", + serviceDomain, externalRef) + } + return &FirestoreDatabaseIdentity{ + project: tokens[1], + firestoredatabase: tokens[3], + }, nil +} + +// BuildID builds a unique identifier FirestoreDatabaseIdentity from resource components +func BuildID(project, firestoredatabase string) *FirestoreDatabaseIdentity { + return &FirestoreDatabaseIdentity{ + project: project, + firestoredatabase: firestoredatabase, + } +} diff --git a/pkg/controller/direct/firestore/firestoredatabase_mappings.go b/pkg/controller/direct/firestore/firestoredatabase_mappings.go new file mode 100644 index 0000000000..8fafbe49e4 --- /dev/null +++ b/pkg/controller/direct/firestore/firestoredatabase_mappings.go @@ -0,0 +1,61 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +import ( + pb "cloud.google.com/go/firestore/apiv1/admin/adminpb" + krm "github.com/GoogleCloudPlatform/k8s-config-connector/apis/firestore/v1alpha1" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct" +) + +func FirestoreDatabaseObservedState_FromProto(mapCtx *direct.MapContext, in *pb.Database) *krm.FirestoreDatabaseObservedState { + if in == nil { + return nil + } + out := &krm.FirestoreDatabaseObservedState{} + out.Uid = direct.LazyPtr(in.GetUid()) + out.CreateTime = direct.StringTimestamp_FromProto(mapCtx, in.GetCreateTime()) + out.UpdateTime = direct.StringTimestamp_FromProto(mapCtx, in.GetUpdateTime()) + out.VersionRetentionPeriod = direct.Duration_FromProto(mapCtx, in.GetVersionRetentionPeriod()) + out.EarliestVersionTime = direct.StringTimestamp_FromProto(mapCtx, in.GetEarliestVersionTime()) + out.KeyPrefix = direct.LazyPtr(in.GetKeyPrefix()) + out.Etag = direct.LazyPtr(in.GetEtag()) + return out +} + +func FirestoreDatabaseSpec_FromProto(mapCtx *direct.MapContext, in *pb.Database) *krm.FirestoreDatabaseSpec { + if in == nil { + return nil + } + out := &krm.FirestoreDatabaseSpec{} + out.LocationID = direct.LazyPtr(in.GetLocationId()) + out.ConcurrencyMode = direct.Enum_FromProto(mapCtx, in.GetConcurrencyMode()) + out.PointInTimeRecoveryEnablement = direct.Enum_FromProto(mapCtx, in.GetPointInTimeRecoveryEnablement()) + return out +} + +func FirestoreDatabaseSpec_ToProto(mapCtx *direct.MapContext, in *krm.FirestoreDatabaseSpec) *pb.Database { + if in == nil { + return nil + } + out := &pb.Database{} + out.LocationId = direct.ValueOf(in.LocationID) + out.Type = pb.Database_FIRESTORE_NATIVE + out.ConcurrencyMode = direct.Enum_ToProto[pb.Database_ConcurrencyMode](mapCtx, in.ConcurrencyMode) + out.PointInTimeRecoveryEnablement = direct.Enum_ToProto[pb.Database_PointInTimeRecoveryEnablement](mapCtx, in.PointInTimeRecoveryEnablement) + out.AppEngineIntegrationMode = pb.Database_DISABLED + out.DeleteProtectionState = pb.Database_DELETE_PROTECTION_DISABLED + return out +} diff --git a/pkg/controller/direct/firestore/mapper.generated.go b/pkg/controller/direct/firestore/mapper.generated.go new file mode 100644 index 0000000000..2041bf6c36 --- /dev/null +++ b/pkg/controller/direct/firestore/mapper.generated.go @@ -0,0 +1,44 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package firestore + +/* +import ( + pb "cloud.google.com/go/firestore/apiv1/admin/adminpb" + krm "github.com/GoogleCloudPlatform/k8s-config-connector/apis/firestore/v1alpha1" + "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct" +) +func FirestoreDatabaseObservedState_ToProto(mapCtx *direct.MapContext, in *krm.FirestoreDatabaseObservedState) *pb.Database { + if in == nil { + return nil + } + out := &pb.Database{} + // MISSING: Name + out.Uid = direct.ValueOf(in.Uid) + out.CreateTime = Database_CreateTime_ToProto(mapCtx, in.CreateTime) + out.UpdateTime = Database_UpdateTime_ToProto(mapCtx, in.UpdateTime) + // MISSING: LocationID + // MISSING: Type + // MISSING: ConcurrencyMode + out.VersionRetentionPeriod = Database_VersionRetentionPeriod_ToProto(mapCtx, in.VersionRetentionPeriod) + out.EarliestVersionTime = Database_EarliestVersionTime_ToProto(mapCtx, in.EarliestVersionTime) + // MISSING: PointInTimeRecoveryEnablement + // MISSING: AppEngineIntegrationMode + out.KeyPrefix = direct.ValueOf(in.KeyPrefix) + // MISSING: DeleteProtectionState + out.Etag = direct.ValueOf(in.Etag) + return out +} +*/ diff --git a/pkg/controller/direct/maputils.go b/pkg/controller/direct/maputils.go index 88ccb928c1..448717279d 100644 --- a/pkg/controller/direct/maputils.go +++ b/pkg/controller/direct/maputils.go @@ -137,11 +137,26 @@ func LazyPtr[V comparable](v V) *V { return &v } -func ToOpenAPIDateTime(ts *timestamppb.Timestamp) *string { +func StringTimestamp_FromProto(mapCtx *MapContext, ts *timestamppb.Timestamp) *string { + if ts == nil { + return nil + } formatted := ts.AsTime().Format(time.RFC3339) return &formatted } +func StringTimestamp_ToProto(mapCtx *MapContext, s *string) *timestamppb.Timestamp { + if s == nil { + return nil + } + t, err := time.Parse(time.RFC3339, *s) + if err != nil { + mapCtx.Errorf("invalid timestamp %q", *s) + } + ts := timestamppb.New(t) + return ts +} + func PtrTo[T any](t T) *T { return &t } @@ -204,17 +219,25 @@ func Duration_FromProto(mapCtx *MapContext, in *durationpb.Duration) *string { return nil } + s := in.Seconds + n := in.Nanos + + if in.Nanos/1e9 > 0 { + s += int64(in.Nanos / 1e9) + n = in.Nanos % 1e9 + } + // We want to report the duration without truncation (do don't want to map via float64) - s := strconv.FormatInt(in.Seconds, 10) - if in.Nanos != 0 { - nanos := strconv.FormatInt(int64(in.Nanos), 10) + sStr := strconv.FormatInt(s, 10) + if n != 0 { + nanos := strconv.FormatInt(int64(n), 10) pad := 9 - len(nanos) nanos = strings.Repeat("0", pad) + nanos nanos = strings.TrimRight(nanos, "0") - s += "." + nanos + sStr += "." + nanos } - s += "s" - return &s + sStr += "s" + return &sStr } func SecondsString_FromProto(mapCtx *MapContext, in *durationpb.Duration) *string { diff --git a/pkg/controller/direct/monitoring/utils.go b/pkg/controller/direct/monitoring/utils.go index 70e73a6c50..43f4447aa5 100644 --- a/pkg/controller/direct/monitoring/utils.go +++ b/pkg/controller/direct/monitoring/utils.go @@ -108,7 +108,7 @@ func (w *visitorWalker) visitAny(path string, v reflect.Value) { } switch v.Kind() { - case reflect.Ptr: + case reflect.Ptr, reflect.Interface: if v.IsNil() { return } diff --git a/pkg/controller/direct/register/register.go b/pkg/controller/direct/register/register.go index e18d2ae624..a4976b2963 100644 --- a/pkg/controller/direct/register/register.go +++ b/pkg/controller/direct/register/register.go @@ -17,10 +17,12 @@ package register import ( _ "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/alloydb" _ "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/apikeys" + _ "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/bigqueryconnection" _ "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/cloudbuild" _ "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/compute" _ "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/dataflow" _ "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/dataform" + _ "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/firestore" _ "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/gkehub" _ "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/logging" _ "github.com/GoogleCloudPlatform/k8s-config-connector/pkg/controller/direct/monitoring" diff --git a/pkg/controller/direct/registry/registry.go b/pkg/controller/direct/registry/registry.go index c4437b0867..cb32532cd0 100644 --- a/pkg/controller/direct/registry/registry.go +++ b/pkg/controller/direct/registry/registry.go @@ -92,13 +92,8 @@ func Init(ctx context.Context, config *config.ControllerConfig) error { } func RegisterModel(gvk schema.GroupVersionKind, modelFn ModelFactoryFunc) { - if singleton.registrations == nil { - singleton.registrations = make(map[schema.GroupKind]*registration) - } - singleton.registrations[gvk.GroupKind()] = ®istration{ - gvk: gvk, - factory: modelFn, - } + rg := &predicate.OptInToDirectReconciliation{} + RegisterModelWithReconcileGate(gvk, modelFn, rg) } func RegisterModelWithReconcileGate(gvk schema.GroupVersionKind, modelFn ModelFactoryFunc, rg predicate.ReconcileGate) { diff --git a/pkg/controller/direct/sql/mapping.go b/pkg/controller/direct/sql/mapping.go index a570cdd5b6..9401ce4cab 100644 --- a/pkg/controller/direct/sql/mapping.go +++ b/pkg/controller/direct/sql/mapping.go @@ -309,20 +309,7 @@ func SQLInstanceKRMToGCP(in *krm.SQLInstance, refs *SQLInstanceInternalRefs) (*a } out.Settings.IpConfiguration = InstanceIpConfigurationKRMToGCP(in.Spec.Settings.IpConfiguration, refs) - - if in.Spec.Settings.LocationPreference != nil { - out.Settings.LocationPreference = &api.LocationPreference{} - if in.Spec.Settings.LocationPreference.FollowGaeApplication != nil { - // todo: deprecated - out.Settings.LocationPreference.FollowGaeApplication = *in.Spec.Settings.LocationPreference.FollowGaeApplication - } - if in.Spec.Settings.LocationPreference.SecondaryZone != nil { - out.Settings.LocationPreference.SecondaryZone = *in.Spec.Settings.LocationPreference.SecondaryZone - } - if in.Spec.Settings.LocationPreference.Zone != nil { - out.Settings.LocationPreference.Zone = *in.Spec.Settings.LocationPreference.Zone - } - } + out.Settings.LocationPreference = InstanceLocationPreferenceKRMToGCP(in.Spec.Settings.LocationPreference) if in.Spec.Settings.MaintenanceWindow != nil { out.Settings.MaintenanceWindow = &api.MaintenanceWindow{} @@ -479,6 +466,21 @@ func InstancePscConfigKRMToGCP(in []krm.InstancePscConfig) *api.PscConfig { return out } +func InstanceLocationPreferenceKRMToGCP(in *krm.InstanceLocationPreference) *api.LocationPreference { + if in == nil { + return nil + } + + out := &api.LocationPreference{ + Kind: "sql#locationPreference", + FollowGaeApplication: direct.ValueOf(in.FollowGaeApplication), + SecondaryZone: direct.ValueOf(in.SecondaryZone), + Zone: direct.ValueOf(in.Zone), + } + + return out +} + func SQLInstanceGCPToKRM(in *api.DatabaseInstance) (*krm.SQLInstance, error) { out := &krm.SQLInstance{} @@ -644,60 +646,8 @@ func SQLInstanceGCPToKRM(in *api.DatabaseInstance) (*krm.SQLInstance, error) { } } - if in.Settings.IpConfiguration != nil { - ic := &krm.InstanceIpConfiguration{} - - if in.Settings.IpConfiguration.AllocatedIpRange != "" { - ic.AllocatedIpRange = &in.Settings.IpConfiguration.AllocatedIpRange - } - - if in.Settings.IpConfiguration.AuthorizedNetworks != nil { - ans := []krm.InstanceAuthorizedNetworks{} - for _, an := range in.Settings.IpConfiguration.AuthorizedNetworks { - ans = append(ans, krm.InstanceAuthorizedNetworks{ - ExpirationTime: &an.ExpirationTime, - Name: &an.Name, - Value: an.Value, - }) - } - ic.AuthorizedNetworks = ans - } - - ic.EnablePrivatePathForGoogleCloudServices = &in.Settings.IpConfiguration.EnablePrivatePathForGoogleCloudServices - - ic.Ipv4Enabled = &in.Settings.IpConfiguration.Ipv4Enabled - - if in.Settings.IpConfiguration.PrivateNetwork != "" { - ic.PrivateNetworkRef = &refs.ComputeNetworkRef{ - External: in.Settings.IpConfiguration.PrivateNetwork, - } - } - - if in.Settings.IpConfiguration.PscConfig != nil { - out.Spec.Settings.IpConfiguration.PscConfig = []krm.InstancePscConfig{ - { - AllowedConsumerProjects: in.Settings.IpConfiguration.PscConfig.AllowedConsumerProjects, - PscEnabled: &in.Settings.IpConfiguration.PscConfig.PscEnabled, - }, - } - } - - ic.RequireSsl = &in.Settings.IpConfiguration.RequireSsl - - if in.Settings.IpConfiguration.SslMode != "" { - ic.SslMode = &in.Settings.IpConfiguration.SslMode - } - - out.Spec.Settings.IpConfiguration = ic - } - - if in.Settings.LocationPreference != nil { - out.Spec.Settings.LocationPreference = &krm.InstanceLocationPreference{ - FollowGaeApplication: &in.Settings.LocationPreference.FollowGaeApplication, - SecondaryZone: &in.Settings.LocationPreference.SecondaryZone, - Zone: &in.Settings.LocationPreference.Zone, - } - } + out.Spec.Settings.IpConfiguration = InstanceIpConfigurationGCPToKRM(in.Settings.IpConfiguration) + out.Spec.Settings.LocationPreference = InstanceLocationPreferenceGCPToKRM(in.Settings.LocationPreference) if in.Settings.MaintenanceWindow != nil { out.Spec.Settings.MaintenanceWindow = &krm.InstanceMaintenanceWindow{ @@ -749,6 +699,71 @@ func SQLInstanceGCPToKRM(in *api.DatabaseInstance) (*krm.SQLInstance, error) { return out, nil } +func InstanceIpConfigurationGCPToKRM(in *api.IpConfiguration) *krm.InstanceIpConfiguration { + if in == nil { + return nil + } + + out := &krm.InstanceIpConfiguration{ + AllocatedIpRange: direct.LazyPtr(in.AllocatedIpRange), + AuthorizedNetworks: InstanceAuthorizedNetworksGCPToKRM(in.AuthorizedNetworks), + EnablePrivatePathForGoogleCloudServices: direct.PtrTo(in.EnablePrivatePathForGoogleCloudServices), + Ipv4Enabled: direct.PtrTo(in.Ipv4Enabled), + PscConfig: InstancePscConfigGCPToKRM(in.PscConfig), + RequireSsl: direct.PtrTo(in.RequireSsl), + SslMode: direct.LazyPtr(in.SslMode), + } + + if in.PrivateNetwork != "" { + out.PrivateNetworkRef = &refs.ComputeNetworkRef{ + External: in.PrivateNetwork, + } + } + + return out +} + +func InstanceAuthorizedNetworksGCPToKRM(in []*api.AclEntry) []krm.InstanceAuthorizedNetworks { + out := []krm.InstanceAuthorizedNetworks{} + for _, net := range in { + out = append(out, krm.InstanceAuthorizedNetworks{ + ExpirationTime: direct.LazyPtr(net.ExpirationTime), + Name: direct.LazyPtr(net.Name), + Value: net.Value, + }) + } + return out +} + +func InstancePscConfigGCPToKRM(in *api.PscConfig) []krm.InstancePscConfig { + if in == nil { + return nil + } + + out := []krm.InstancePscConfig{ + { + AllowedConsumerProjects: in.AllowedConsumerProjects, + PscEnabled: direct.PtrTo(in.PscEnabled), + }, + } + + return out +} + +func InstanceLocationPreferenceGCPToKRM(in *api.LocationPreference) *krm.InstanceLocationPreference { + if in == nil { + return nil + } + + out := &krm.InstanceLocationPreference{ + FollowGaeApplication: direct.LazyPtr(in.FollowGaeApplication), + SecondaryZone: direct.LazyPtr(in.SecondaryZone), + Zone: direct.LazyPtr(in.Zone), + } + + return out +} + func Convert_SQLInstance_API_v1_To_KRM_status(in *api.DatabaseInstance, out *krm.SQLInstanceStatus) error { if in == nil { return fmt.Errorf("cannot convert nil DatabaseInstance") diff --git a/pkg/controller/direct/sql/merge.go b/pkg/controller/direct/sql/merge.go index b31da911b8..f4fd7a767a 100644 --- a/pkg/controller/direct/sql/merge.go +++ b/pkg/controller/direct/sql/merge.go @@ -709,24 +709,9 @@ func MergeDesiredSQLInstanceWithActual(desired *krm.SQLInstance, refs *SQLInstan updateRequired = true } - if desired.Spec.Settings.LocationPreference != nil { - if actual.Settings.LocationPreference == nil { - // Add location preference - updateRequired = true - } else if (direct.ValueOf(desired.Spec.Settings.LocationPreference.FollowGaeApplication) != actual.Settings.LocationPreference.FollowGaeApplication) || - (direct.ValueOf(desired.Spec.Settings.LocationPreference.SecondaryZone) != actual.Settings.LocationPreference.SecondaryZone) || - (direct.ValueOf(desired.Spec.Settings.LocationPreference.Zone) != actual.Settings.LocationPreference.Zone) { - // Change location preference - updateRequired = true - } - merged.Settings.LocationPreference = &api.LocationPreference{ - FollowGaeApplication: direct.ValueOf(desired.Spec.Settings.LocationPreference.FollowGaeApplication), - SecondaryZone: direct.ValueOf(desired.Spec.Settings.LocationPreference.SecondaryZone), - Zone: direct.ValueOf(desired.Spec.Settings.LocationPreference.Zone), - } - } else if actual.Settings.LocationPreference != nil { - // Keep location preference - merged.Settings.LocationPreference = actual.Settings.LocationPreference + merged.Settings.LocationPreference = InstanceLocationPreferenceKRMToGCP(desired.Spec.Settings.LocationPreference) + if !LocationPreferencesMatch(merged.Settings.LocationPreference, actual.Settings.LocationPreference) { + updateRequired = true } if desired.Spec.Settings.MaintenanceWindow != nil { @@ -861,52 +846,39 @@ func MergeDesiredSQLInstanceWithActual(desired *krm.SQLInstance, refs *SQLInstan } func IpConfigurationsMatch(desired *api.IpConfiguration, actual *api.IpConfiguration) bool { - if !PointersMatch(desired, actual) { - return false - } - if desired == nil && actual == nil { return true } - + if !PointersMatch(desired, actual) { + return false + } if desired.AllocatedIpRange != actual.AllocatedIpRange { return false } - if !AclEntryListsMatch(desired.AuthorizedNetworks, actual.AuthorizedNetworks) { return false } - if desired.EnablePrivatePathForGoogleCloudServices != actual.EnablePrivatePathForGoogleCloudServices { return false } - if desired.Ipv4Enabled != actual.Ipv4Enabled { return false } - if desired.PrivateNetwork != actual.PrivateNetwork { return false } - if !PscConfigsMatch(desired.PscConfig, actual.PscConfig) { return false } - if desired.RequireSsl != actual.RequireSsl { return false } - // Ignore ServerCaMode. It is not supported in KRM API. - if desired.SslMode != actual.SslMode { return false } - // Ignore ForceSendFields. Assume it is set correctly in desired. - // Ignore NullFields. Assume it is set correctly in desired. - return true } @@ -914,67 +886,75 @@ func AclEntryListsMatch(desired []*api.AclEntry, actual []*api.AclEntry) bool { if len(desired) != len(actual) { return false } - for i := 0; i < len(desired); i++ { if !AclEntriesMatch(desired[i], actual[i]) { return false } } - return true } func AclEntriesMatch(desired *api.AclEntry, actual *api.AclEntry) bool { - if !PointersMatch(desired, actual) { - return false - } - if desired == nil && actual == nil { return true } - + if !PointersMatch(desired, actual) { + return false + } if desired.ExpirationTime != actual.ExpirationTime { return false } - // Ignore Kind. It is sometimes not set in API responses. - if desired.Name != actual.Name { return false } - if desired.Value != actual.Value { return false } - // Ignore ForceSendFields. Assume it is set correctly in desired. - // Ignore NullFields. Assume it is set correctly in desired. - return true } func PscConfigsMatch(desired *api.PscConfig, actual *api.PscConfig) bool { + if desired == nil && actual == nil { + return true + } if !PointersMatch(desired, actual) { return false } + if !reflect.DeepEqual(desired.AllowedConsumerProjects, actual.AllowedConsumerProjects) { + return false + } + if desired.PscEnabled != actual.PscEnabled { + return false + } + // Ignore ForceSendFields. Assume it is set correctly in desired. + // Ignore NullFields. Assume it is set correctly in desired. + return true +} +func LocationPreferencesMatch(desired *api.LocationPreference, actual *api.LocationPreference) bool { if desired == nil && actual == nil { return true } - - if !reflect.DeepEqual(desired.AllowedConsumerProjects, actual.AllowedConsumerProjects) { + if !PointersMatch(desired, actual) { return false } - - if desired.PscEnabled != actual.PscEnabled { + if desired.FollowGaeApplication != actual.FollowGaeApplication { + return false + } + if desired.Kind != actual.Kind { + return false + } + if desired.SecondaryZone != actual.SecondaryZone { + return false + } + if desired.Zone != actual.Zone { return false } - // Ignore ForceSendFields. Assume it is set correctly in desired. - // Ignore NullFields. Assume it is set correctly in desired. - return true } diff --git a/pkg/controller/direct/sql/sqlinstance_controller.go b/pkg/controller/direct/sql/sqlinstance_controller.go index 8333582e97..673fa55f3d 100644 --- a/pkg/controller/direct/sql/sqlinstance_controller.go +++ b/pkg/controller/direct/sql/sqlinstance_controller.go @@ -43,11 +43,16 @@ func init() { registry.RegisterModelWithReconcileGate(krm.SQLInstanceGVK, newSQLInstanceModel, rg) } -type SQLInstanceReconcileGate struct{} +type SQLInstanceReconcileGate struct { + optIn kccpredicate.OptInToDirectReconciliation +} var _ kccpredicate.ReconcileGate = &SQLInstanceReconcileGate{} -func (*SQLInstanceReconcileGate) ShouldReconcile(o *unstructured.Unstructured) bool { +func (r *SQLInstanceReconcileGate) ShouldReconcile(o *unstructured.Unstructured) bool { + if r.optIn.ShouldReconcile(o) { + return true + } obj := &krm.SQLInstance{} if err := runtime.DefaultUnstructuredConverter.FromUnstructured(o.Object, &obj); err != nil { return false diff --git a/pkg/controller/dynamic/dynamic_controller_integration_test.go b/pkg/controller/dynamic/dynamic_controller_integration_test.go index 6578b0b148..091dbcae12 100644 --- a/pkg/controller/dynamic/dynamic_controller_integration_test.go +++ b/pkg/controller/dynamic/dynamic_controller_integration_test.go @@ -799,7 +799,11 @@ func getChangedFields(initialObject, updatedObject map[string]interface{}, field for k, v := range updated { if !reflect.DeepEqual(initial[k], v) { if _, ok := v.(map[string]interface{}); ok { - changedFields[k] = getChangedFields(initial, updated, k) + // Skip checking for changes in resource reference fields, because there + // is no way to export the name and namespace fields (only external). + if !strings.HasSuffix(k, "Ref") { + changedFields[k] = getChangedFields(initial, updated, k) + } } else { changedFields[k] = updated[k] } diff --git a/pkg/controller/kccmanager/kccmanager.go b/pkg/controller/kccmanager/kccmanager.go index 40cfb846ef..0a23b9bea6 100644 --- a/pkg/controller/kccmanager/kccmanager.go +++ b/pkg/controller/kccmanager/kccmanager.go @@ -59,7 +59,7 @@ type Config struct { // but UserProjectOverride is set to true, resource project will be used. BillingProject string - // HTTPClient is the http client to use for DCL. + // HTTPClient is the http client to use by KCC. // Currently only used in tests. HTTPClient *http.Client diff --git a/pkg/controller/predicate/optin.go b/pkg/controller/predicate/optin.go new file mode 100644 index 0000000000..984b1a1bf3 --- /dev/null +++ b/pkg/controller/predicate/optin.go @@ -0,0 +1,33 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package predicate + +import "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + +// AnnotationKeyAlphaReconciler allows customers to opt-in to using the direct reconciler. +const AnnotationKeyAlphaReconciler = "alpha.cnrm.cloud.google.com/reconciler" + +// OptInToDirectReconciliation allows users to opt in to direct reconciliation +// by specifying an AnnotationKeyAlphaReconciler annotation. +type OptInToDirectReconciliation struct { +} + +var _ ReconcileGate = &OptInToDirectReconciliation{} + +// ShouldReconcile returns true if the reconciler should be used to for the resource. +func (r *OptInToDirectReconciliation) ShouldReconcile(o *unstructured.Unstructured) bool { + v := o.GetAnnotations()[AnnotationKeyAlphaReconciler] + return v == "direct" +} diff --git a/pkg/controller/registration/registration_controller.go b/pkg/controller/registration/registration_controller.go index 496f34100e..9433f40380 100644 --- a/pkg/controller/registration/registration_controller.go +++ b/pkg/controller/registration/registration_controller.go @@ -52,6 +52,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/handler" crlog "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/manager" + "sigs.k8s.io/controller-runtime/pkg/predicate" "sigs.k8s.io/controller-runtime/pkg/reconcile" "sigs.k8s.io/controller-runtime/pkg/source" ) @@ -238,55 +239,72 @@ func registerDefaultController(r *ReconcileRegistration, config *config.Controll } } - // register controllers for dcl-based CRDs - if val, ok := crd.Labels[k8s.DCL2CRDLabel]; ok && val == "true" { - su, err := dclcontroller.Add(r.mgr, crd, r.dclConverter, r.dclConfig, r.smLoader, r.defaulters, r.jitterGenerator) - if err != nil { - return nil, fmt.Errorf("error adding dcl controller for %v to a manager: %w", crd.Spec.Names.Kind, err) + hasDirectController := registry.IsDirectByGK(gvk.GroupKind()) + hasTerraformController := crd.Labels[crdgeneration.TF2CRDLabel] == "true" + hasDCLController := crd.Labels[k8s.DCL2CRDLabel] == "true" + + var useDirectReconcilerPredicate predicate.Predicate + var useLegacyPredicate predicate.Predicate + + // If we have a choice of controllers, construct predicates to choose between them + if hasDirectController && (hasTerraformController || hasDCLController) { + reconcileGate := registry.GetReconcileGate(gvk.GroupKind()) + if reconcileGate != nil { + // If reconcile gate is enabled for this gvk, generate a controller-runtime predicate that will + // run the direct reconciler only when the reconcile gate returns true. + useDirectReconcilerPredicate = kccpredicate.NewReconcilePredicate(r.mgr.GetClient(), gvk, reconcileGate) + useLegacyPredicate = kccpredicate.NewInverseReconcilePredicate(r.mgr.GetClient(), gvk, reconcileGate) } - return su, nil - } - // register controllers for tf-based CRDs - if val, ok := crd.Labels[crdgeneration.TF2CRDLabel]; ok && val == "true" { - su, err := tf.Add(r.mgr, crd, r.provider, r.smLoader, r.defaulters, r.jitterGenerator, nil) - if err != nil { - return nil, fmt.Errorf("error adding terraform controller for %v to a manager: %w", crd.Spec.Names.Kind, err) + + if !hasTerraformController && !hasDCLController { + // We're always going to use the direct reconciler + useDirectReconcilerPredicate = nil + useLegacyPredicate = nil + } + + if (hasTerraformController || hasDCLController) && useDirectReconcilerPredicate == nil { + logger.Error(fmt.Errorf("no predicate where we have multiple controllers"), "skipping direct controller registration", "group", gvk.Group, "version", gvk.Version, "kind", gvk.Kind) + hasDirectController = false } - return su, nil } + // register controllers for direct CRDs - if registry.IsDirectByGK(gvk.GroupKind()) { + if hasDirectController { model, err := registry.GetModel(gvk.GroupKind()) if err != nil { return nil, err } deps := directbase.Deps{ - JitterGenerator: r.jitterGenerator, - } - rg := registry.GetReconcileGate(gvk.GroupKind()) - if rg != nil { - // If reconcile gate is enabled for this gvk, generate a controller-runtime predicate that will - // run the direct reconciler only when the reconcile gate returns true. - rp := kccpredicate.NewReconcilePredicate(r.mgr.GetClient(), gvk, rg) - deps.ReconcilePredicate = rp + JitterGenerator: r.jitterGenerator, + ReconcilePredicate: useDirectReconcilerPredicate, } if err := directbase.AddController(r.mgr, gvk, model, deps); err != nil { return nil, fmt.Errorf("error adding direct controller for %v to a manager: %w", crd.Spec.Names.Kind, err) } - if rg != nil { - // If reconcile gate is enabled for this gvk, generate a controller-runtime predicate that will - // run the terraform-based reconciler when the reconcile gate returns false. - irp := kccpredicate.NewInverseReconcilePredicate(r.mgr.GetClient(), gvk, rg) - su, err := tf.Add(r.mgr, crd, r.provider, r.smLoader, r.defaulters, r.jitterGenerator, irp) - if err != nil { - return nil, fmt.Errorf("error adding terraform controller for %v to a manager: %w", crd.Spec.Names.Kind, err) - } - return su, nil + } + + // register controllers for dcl-based CRDs + if hasDCLController { + su, err := dclcontroller.Add(r.mgr, crd, r.dclConverter, r.dclConfig, r.smLoader, r.defaulters, r.jitterGenerator, useLegacyPredicate) + if err != nil { + return nil, fmt.Errorf("error adding dcl controller for %v to a manager: %w", crd.Spec.Names.Kind, err) } - return schemaUpdater, nil + return su, nil } - logger.Error(fmt.Errorf("unrecognized CRD: %v", crd.Spec.Names.Kind), "skipping controller registration", "group", gvk.Group, "version", gvk.Version, "kind", gvk.Kind) - return nil, nil + // register controllers for tf-based CRDs + if hasTerraformController { + su, err := tf.Add(r.mgr, crd, r.provider, r.smLoader, r.defaulters, r.jitterGenerator, useLegacyPredicate) + if err != nil { + return nil, fmt.Errorf("error adding terraform controller for %v to a manager: %w", crd.Spec.Names.Kind, err) + } + return su, nil + } + + if !hasDCLController && !hasTerraformController && !hasDirectController { + logger.Error(fmt.Errorf("unrecognized CRD: %v", crd.Spec.Names.Kind), "skipping controller registration", "group", gvk.Group, "version", gvk.Version, "kind", gvk.Kind) + return nil, nil + } + } return schemaUpdater, nil } diff --git a/pkg/controller/tf/controller.go b/pkg/controller/tf/controller.go index 6e0f36e207..e6985f70e6 100644 --- a/pkg/controller/tf/controller.go +++ b/pkg/controller/tf/controller.go @@ -80,7 +80,7 @@ type Reconciler struct { resourceWatcherRoutines *semaphore.Weighted // Used to cap number of goroutines watching unready dependencies } -func Add(mgr manager.Manager, crd *apiextensions.CustomResourceDefinition, provider *tfschema.Provider, smLoader *servicemappingloader.ServiceMappingLoader, defaulters []k8s.Defaulter, jitterGenerator jitter.Generator, irp predicate.Predicate) (k8s.SchemaReferenceUpdater, error) { +func Add(mgr manager.Manager, crd *apiextensions.CustomResourceDefinition, provider *tfschema.Provider, smLoader *servicemappingloader.ServiceMappingLoader, defaulters []k8s.Defaulter, jitterGenerator jitter.Generator, additionalPredicate predicate.Predicate) (k8s.SchemaReferenceUpdater, error) { kind := crd.Spec.Names.Kind apiVersion := k8s.GetAPIVersionFromCRD(crd) controllerName := fmt.Sprintf("%v-controller", strings.ToLower(kind)) @@ -97,8 +97,8 @@ func Add(mgr manager.Manager, crd *apiextensions.CustomResourceDefinition, provi }, } predicateList := []predicate.Predicate{kccpredicate.UnderlyingResourceOutOfSyncPredicate{}} - if irp != nil { - predicateList = append(predicateList, irp) + if additionalPredicate != nil { + predicateList = append(predicateList, additionalPredicate) } _, err = builder. ControllerManagedBy(mgr). diff --git a/pkg/k8s/allowlist_test.go b/pkg/k8s/allowlist_test.go index 33b54251c9..c5df02a4b3 100644 --- a/pkg/k8s/allowlist_test.go +++ b/pkg/k8s/allowlist_test.go @@ -145,6 +145,11 @@ func TestOutputOnlyFieldsAreUnderObservedState(t *testing.T) { } requiredFieldsMap := map[string]bool{"observedGeneration": true, "conditions": true} optionalFieldsMap := map[string]bool{"observedState": true} + + // for direct resources, we will use the "externalRef" prop under the "status" + // to track the KCC full resource ID + optionalFieldsMap["externalRef"] = true + for k, _ := range statusProp.Properties { foundInMaps := false if _, ok := requiredFieldsMap[k]; ok { @@ -156,7 +161,7 @@ func TestOutputOnlyFieldsAreUnderObservedState(t *testing.T) { delete(optionalFieldsMap, k) } if !foundInMaps { - t.Errorf("CRD has non-boilerplate field %v under 'status'", k) + t.Errorf("CRD has non-boilerplate field '%v' under 'status'", k) } } diff --git a/pkg/k8s/constants.go b/pkg/k8s/constants.go index 38a6bd9869..06a7d8fe28 100644 --- a/pkg/k8s/constants.go +++ b/pkg/k8s/constants.go @@ -80,7 +80,7 @@ const ( // State into spec annotation values StateMergeIntoSpec = "merge" StateAbsentInSpec = "absent" - StateIntoSpecDefaultValueV1Beta1 = StateMergeIntoSpec + StateIntoSpecDefaultValueV1Beta1 = StateAbsentInSpec // Core kubernetes constants LastAppliedConfigurationAnnotation = "kubectl.kubernetes.io/last-applied-configuration" diff --git a/pkg/k8s/finalizers.go b/pkg/k8s/finalizers.go index 47066fbf35..00993556a1 100644 --- a/pkg/k8s/finalizers.go +++ b/pkg/k8s/finalizers.go @@ -28,6 +28,7 @@ func EnsureFinalizer(o metav1.Object, finalizer string) (found bool) { return false } +// EnsureFinalizers adds the specified finalizers, returning true if the finalizers were already present (i.e. no changes) func EnsureFinalizers(o metav1.Object, finalizers ...string) (found bool) { found = true for _, f := range finalizers { diff --git a/pkg/k8s/stateintospecdefaulter_test.go b/pkg/k8s/stateintospecdefaulter_test.go index 3c72d0b474..3fb581633d 100644 --- a/pkg/k8s/stateintospecdefaulter_test.go +++ b/pkg/k8s/stateintospecdefaulter_test.go @@ -64,7 +64,7 @@ func TestStateIntoSpecDefaulter_ApplyDefaults(t *testing.T) { }, }, expectChanged: true, - expectValue: "merge", + expectValue: "absent", }, { name: "use 'absent' if resource doesn't support 'merge'", diff --git a/pkg/test/fuzz/generate.go b/pkg/test/fuzz/generate.go index e3d8d7a624..c46a6bcdf8 100644 --- a/pkg/test/fuzz/generate.go +++ b/pkg/test/fuzz/generate.go @@ -132,6 +132,8 @@ func fillWithRandom0(t *testing.T, randStream *rand.Rand, msg protoreflect.Messa msg.Set(field, protoreflect.ValueOfInt32(randStream.Int31())) case protoreflect.Int64Kind: msg.Set(field, protoreflect.ValueOfInt64(randStream.Int63())) + case protoreflect.Uint64Kind: + msg.Set(field, protoreflect.ValueOfUint64(randStream.Uint64())) case protoreflect.StringKind: s := randomString(randStream) msg.Set(field, protoreflect.ValueOfString(s)) @@ -317,6 +319,7 @@ func Visit(msgPath string, msg protoreflect.Message, setter func(v protoreflect. protoreflect.DoubleKind, protoreflect.Int32Kind, protoreflect.Int64Kind, + protoreflect.Uint64Kind, protoreflect.StringKind, protoreflect.EnumKind: setter := func(v protoreflect.Value) { diff --git a/pkg/test/resourcefixture/contexts/sql_context.go b/pkg/test/resourcefixture/contexts/sql_context.go index 58071c535e..5b5d06fd45 100644 --- a/pkg/test/resourcefixture/contexts/sql_context.go +++ b/pkg/test/resourcefixture/contexts/sql_context.go @@ -38,6 +38,13 @@ func init() { ResourceKind: "SQLInstance", } + resourceContextMap["sqlinstance-locationpreference"] = ResourceContext{ + // SQL instances appear to need a bit of additional time before attempting to recreate + // with the exact same name. Otherwise, the GCP API returns "unknown error". + RecreateDelay: time.Second * 60, + ResourceKind: "SQLInstance", + } + resourceContextMap["sqlinstance-mysql"] = ResourceContext{ // SQL instances appear to need a bit of additional time before attempting to recreate // with the exact same name. Otherwise, the GCP API returns "unknown error". @@ -87,6 +94,13 @@ func init() { ResourceKind: "SQLInstance", } + resourceContextMap["sqlinstance-ssl"] = ResourceContext{ + // SQL instances need a bit of additional time before attempting to recreate with + // the exact same name. Otherwise, the GCP API returns "unknown error". + RecreateDelay: time.Second * 60, + ResourceKind: "SQLInstance", + } + resourceContextMap["sqldatabase"] = ResourceContext{ ResourceKind: "SQLDatabase", } diff --git a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/basicalloydbcluster/_generated_object_basicalloydbcluster.golden.yaml b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/basicalloydbcluster/_generated_object_basicalloydbcluster.golden.yaml index 377422a163..84598f317a 100644 --- a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/basicalloydbcluster/_generated_object_basicalloydbcluster.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/basicalloydbcluster/_generated_object_basicalloydbcluster.golden.yaml @@ -3,13 +3,13 @@ kind: AlloyDBCluster metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"deletionPolicy":"DEFAULT","initialUser":{"password":{"value":"postgres"},"user":"postgres"}}}' + cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"initialUser":{"password":{"value":"postgres"},"user":"postgres"}}}' cnrm.cloud.google.com/observed-secret-versions: (removed) - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 3 + generation: 2 labels: cnrm-test: "true" name: alloydbcluster-${uniqueId} @@ -18,8 +18,6 @@ spec: automatedBackupPolicy: labels: source: kcc-test - clusterType: PRIMARY - deletionPolicy: DEFAULT initialUser: password: value: postgres @@ -40,6 +38,6 @@ status: type: Ready databaseVersion: DATABASE_VERSION_UNSPECIFIED name: projects/${projectId}/locations/southamerica-east1/clusters/alloydbcluster${uniqueId} - observedGeneration: 3 + observedGeneration: 2 observedState: clusterType: PRIMARY diff --git a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/basicalloydbsecondarycluster/_generated_object_basicalloydbsecondarycluster.golden.yaml b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/basicalloydbsecondarycluster/_generated_object_basicalloydbsecondarycluster.golden.yaml index e173b36582..229ab750e8 100644 --- a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/basicalloydbsecondarycluster/_generated_object_basicalloydbsecondarycluster.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/basicalloydbsecondarycluster/_generated_object_basicalloydbsecondarycluster.golden.yaml @@ -5,7 +5,7 @@ metadata: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"deletionPolicy":"FORCE"}}' cnrm.cloud.google.com/observed-secret-versions: (removed) - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/basicalloydbsecondarycluster/_http.log b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/basicalloydbsecondarycluster/_http.log index 0587c36eaf..02e2ac9d8f 100644 --- a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/basicalloydbsecondarycluster/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/basicalloydbsecondarycluster/_http.log @@ -283,10 +283,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- @@ -1107,10 +1143,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- diff --git a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/fullalloydbcluster/_generated_object_fullalloydbcluster.golden.yaml b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/fullalloydbcluster/_generated_object_fullalloydbcluster.golden.yaml index a26c840cf3..c5d2b33d4b 100644 --- a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/fullalloydbcluster/_generated_object_fullalloydbcluster.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/fullalloydbcluster/_generated_object_fullalloydbcluster.golden.yaml @@ -3,9 +3,9 @@ kind: AlloyDBCluster metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"deletionPolicy":"DEFAULT","initialUser":{"password":{"value":"Postgres123"},"user":"postgres"}}}' + cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"initialUser":{"password":{"value":"Postgres123"},"user":"postgres"}}}' cnrm.cloud.google.com/observed-secret-versions: (removed) - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -38,10 +38,8 @@ spec: minutes: 0 nanos: 0 seconds: 0 - clusterType: PRIMARY continuousBackupConfig: enabled: false - deletionPolicy: DEFAULT encryptionConfig: kmsKeyNameRef: name: kmscryptokey-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/fullalloydbcluster/_http.log b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/fullalloydbcluster/_http.log index c748ab76fb..68385b6b9c 100644 --- a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/fullalloydbcluster/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/fullalloydbcluster/_http.log @@ -275,7 +275,19 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", - "purpose": "ENCRYPT_DECRYPT" + "primary": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, + "purpose": "ENCRYPT_DECRYPT", + "versionTemplate": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "protectionLevel": "SOFTWARE" + } } --- @@ -304,7 +316,19 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", - "purpose": "ENCRYPT_DECRYPT" + "primary": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, + "purpose": "ENCRYPT_DECRYPT", + "versionTemplate": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "protectionLevel": "SOFTWARE" + } } --- @@ -820,7 +844,19 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", - "purpose": "ENCRYPT_DECRYPT" + "primary": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, + "purpose": "ENCRYPT_DECRYPT", + "versionTemplate": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "protectionLevel": "SOFTWARE" + } } --- @@ -842,7 +878,7 @@ X-Xss-Protection: 0 { "cryptoKeyVersions": [ { - "algorithm": "EC_SIGN_P384_SHA384", + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", "createTime": "2024-04-01T12:34:56.123456Z", "generateTime": "2024-04-01T12:34:56.123456Z", "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", @@ -873,7 +909,7 @@ X-Frame-Options: SAMEORIGIN X-Xss-Protection: 0 { - "algorithm": "EC_SIGN_P384_SHA384", + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", "createTime": "2024-04-01T12:34:56.123456Z", "destroyTime": "2024-04-01T12:34:56.123456Z", "generateTime": "2024-04-01T12:34:56.123456Z", diff --git a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/fullalloydbcluster/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/fullalloydbcluster/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/fullalloydbcluster/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbcluster/fullalloydbcluster/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/basicalloydbinstance/_generated_object_basicalloydbinstance.golden.yaml b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/basicalloydbinstance/_generated_object_basicalloydbinstance.golden.yaml index 7fdbb18683..ab788333ae 100644 --- a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/basicalloydbinstance/_generated_object_basicalloydbinstance.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/basicalloydbinstance/_generated_object_basicalloydbinstance.golden.yaml @@ -3,7 +3,7 @@ kind: AlloyDBInstance metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/basicalloydbinstance/_http.log b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/basicalloydbinstance/_http.log index c455bd3e45..b4c48f372e 100644 --- a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/basicalloydbinstance/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/basicalloydbinstance/_http.log @@ -283,10 +283,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- @@ -942,10 +978,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- diff --git a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/basicalloydbsecondaryinstance/_generated_object_basicalloydbsecondaryinstance.golden.yaml b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/basicalloydbsecondaryinstance/_generated_object_basicalloydbsecondaryinstance.golden.yaml index 0770d96fc2..c3068cf596 100644 --- a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/basicalloydbsecondaryinstance/_generated_object_basicalloydbsecondaryinstance.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/basicalloydbsecondaryinstance/_generated_object_basicalloydbsecondaryinstance.golden.yaml @@ -3,7 +3,7 @@ kind: AlloyDBInstance metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/basicalloydbsecondaryinstance/_http.log b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/basicalloydbsecondaryinstance/_http.log index 5a4408388d..305ddbd3ea 100644 --- a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/basicalloydbsecondaryinstance/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/basicalloydbsecondaryinstance/_http.log @@ -283,10 +283,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- @@ -1230,10 +1266,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- diff --git a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/fullalloydbinstance/_generated_object_fullalloydbinstance.golden.yaml b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/fullalloydbinstance/_generated_object_fullalloydbinstance.golden.yaml index 440d891b0f..8a5807bdcb 100644 --- a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/fullalloydbinstance/_generated_object_fullalloydbinstance.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/fullalloydbinstance/_generated_object_fullalloydbinstance.golden.yaml @@ -3,17 +3,16 @@ kind: AlloyDBInstance metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 4 + generation: 2 labels: cnrm-test: "true" name: alloydbinstance-${uniqueId} namespace: ${uniqueId} spec: - availabilityType: AVAILABILITY_TYPE_UNSPECIFIED clusterRef: name: alloydbcluster-${uniqueId} databaseFlags: @@ -24,6 +23,7 @@ spec: machineConfig: cpuCount: 4 networkConfig: + authorizedExternalNetworks: [] enablePublicIp: false resourceID: alloydbinstance${uniqueId} status: @@ -35,5 +35,5 @@ status: type: Ready createTime: "1970-01-01T00:00:00Z" name: projects/${projectId}/locations/europe-north1/clusters/alloydbcluster${uniqueId}/instances/alloydbinstance${uniqueId} - observedGeneration: 4 + observedGeneration: 2 state: STATE_UNSPECIFIED diff --git a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/fullalloydbinstance/_http.log b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/fullalloydbinstance/_http.log index b9ddead273..f6203a7b30 100644 --- a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/fullalloydbinstance/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/fullalloydbinstance/_http.log @@ -278,10 +278,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress${uniqueId}", + "user": "user@example.com" } --- @@ -968,10 +1004,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress${uniqueId}", + "user": "user@example.com" } --- diff --git a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/readalloydbinstance/_generated_object_readalloydbinstance.golden.yaml b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/readalloydbinstance/_generated_object_readalloydbinstance.golden.yaml index 6928ccb304..f593a9f8d9 100644 --- a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/readalloydbinstance/_generated_object_readalloydbinstance.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/readalloydbinstance/_generated_object_readalloydbinstance.golden.yaml @@ -3,17 +3,16 @@ kind: AlloyDBInstance metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 3 + generation: 2 labels: cnrm-test: "true" name: alloydbreadinstance-${uniqueId} namespace: ${uniqueId} spec: - availabilityType: AVAILABILITY_TYPE_UNSPECIFIED clusterRef: name: alloydbcluster-${uniqueId} instanceTypeRef: @@ -32,5 +31,5 @@ status: type: Ready createTime: "1970-01-01T00:00:00Z" name: projects/${projectId}/locations/europe-southwest1/clusters/alloydbcluster${uniqueId}/instances/alloydbreadinstance${uniqueId} - observedGeneration: 3 + observedGeneration: 2 state: STATE_UNSPECIFIED diff --git a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/readalloydbinstance/_http.log b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/readalloydbinstance/_http.log index b6a7d8d6b1..6107bb68f7 100644 --- a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/readalloydbinstance/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/readalloydbinstance/_http.log @@ -278,10 +278,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress${uniqueId}", + "user": "user@example.com" } --- @@ -1089,10 +1125,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress${uniqueId}", + "user": "user@example.com" } --- diff --git a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/zonalalloydbinstance/_generated_object_zonalalloydbinstance.golden.yaml b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/zonalalloydbinstance/_generated_object_zonalalloydbinstance.golden.yaml index e7ba2fa5a7..0d95aa4dcd 100644 --- a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/zonalalloydbinstance/_generated_object_zonalalloydbinstance.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/zonalalloydbinstance/_generated_object_zonalalloydbinstance.golden.yaml @@ -3,7 +3,7 @@ kind: AlloyDBInstance metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/zonalalloydbinstance/_http.log b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/zonalalloydbinstance/_http.log index 92d5412c20..1103d0cb64 100644 --- a/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/zonalalloydbinstance/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/alloydb/v1beta1/alloydbinstance/zonalalloydbinstance/_http.log @@ -283,10 +283,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- @@ -865,10 +901,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- diff --git a/pkg/test/resourcefixture/testdata/basic/apikeys/v1alpha1/apikeyskey/apikeyskeybasic/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/apikeys/v1alpha1/apikeyskey/apikeyskeybasic/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/apikeys/v1alpha1/apikeyskey/apikeyskeybasic/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/apikeys/v1alpha1/apikeyskey/apikeyskeybasic/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/artifactregistry/v1beta1/artifactregistryrepository/_generated_object_artifactregistryrepository.golden.yaml b/pkg/test/resourcefixture/testdata/basic/artifactregistry/v1beta1/artifactregistryrepository/_generated_object_artifactregistryrepository.golden.yaml index 8562a65ef6..ef6c187811 100644 --- a/pkg/test/resourcefixture/testdata/basic/artifactregistry/v1beta1/artifactregistryrepository/_generated_object_artifactregistryrepository.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/artifactregistry/v1beta1/artifactregistryrepository/_generated_object_artifactregistryrepository.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/artifactregistry/v1beta1/artifactregistryrepository/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/artifactregistry/v1beta1/artifactregistryrepository/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/artifactregistry/v1beta1/artifactregistryrepository/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/artifactregistry/v1beta1/artifactregistryrepository/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerydataset/basicbigquerydataset/_generated_object_basicbigquerydataset.golden.yaml b/pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerydataset/basicbigquerydataset/_generated_object_basicbigquerydataset.golden.yaml index 2a34d5fb0c..9ca8d07847 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerydataset/basicbigquerydataset/_generated_object_basicbigquerydataset.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerydataset/basicbigquerydataset/_generated_object_basicbigquerydataset.golden.yaml @@ -1,23 +1,9 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: bigquery.cnrm.cloud.google.com/v1beta1 kind: BigQueryDataset metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -27,17 +13,7 @@ metadata: name: bigquerydatasetsample${uniqueId} namespace: ${uniqueId} spec: - access: - - role: OWNER - specialGroup: projectOwners - - role: OWNER - userByEmail: user@google.com - - role: READER - specialGroup: projectReaders - - role: WRITER - specialGroup: projectWriters friendlyName: bigquerydataset-sample-updated - location: US projectRef: external: ${projectId} resourceID: bigquerydatasetsample${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerydataset/bigquerydatasetaccessblock/_generated_object_bigquerydatasetaccessblock.golden.yaml b/pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerydataset/bigquerydatasetaccessblock/_generated_object_bigquerydatasetaccessblock.golden.yaml index 36ab1d7544..4496ca473c 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerydataset/bigquerydatasetaccessblock/_generated_object_bigquerydatasetaccessblock.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerydataset/bigquerydatasetaccessblock/_generated_object_bigquerydatasetaccessblock.golden.yaml @@ -17,7 +17,7 @@ kind: BigQueryDataset metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigqueryjob/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigqueryjob/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigqueryjob/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigqueryjob/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerytable/_generated_object_bigquerytable.golden.yaml b/pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerytable/_generated_object_bigquerytable.golden.yaml index 1802ae229b..476149b0f6 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerytable/_generated_object_bigquerytable.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerytable/_generated_object_bigquerytable.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -18,14 +18,12 @@ spec: name: bigquerydatasetsample${uniqueId} externalDataConfiguration: autodetect: true - compression: NONE sourceFormat: CSV sourceUris: - gs://gcp-public-data-landsat/LC08/01/044/034/LC08_L1GT_044034_20130330_20170310_01_T2/LC08_L1GT_044034_20130330_20170310_01_T2_ANG.txt friendlyName: bigquerytable-sample-updated requirePartitionFilter: false resourceID: bigquerytablesample${uniqueId} - schema: '[{"mode":"NULLABLE","name":"string_field_0","type":"STRING"},{"mode":"NULLABLE","name":"string_field_1","type":"STRING"},{"mode":"NULLABLE","name":"string_field_2","type":"STRING"},{"mode":"NULLABLE","name":"string_field_3","type":"STRING"},{"mode":"NULLABLE","name":"string_field_4","type":"STRING"},{"mode":"NULLABLE","name":"string_field_5","type":"STRING"},{"mode":"NULLABLE","name":"int64_field_6","type":"INTEGER"},{"mode":"NULLABLE","name":"int64_field_7","type":"INTEGER"},{"mode":"NULLABLE","name":"int64_field_8","type":"INTEGER"},{"mode":"NULLABLE","name":"int64_field_9","type":"INTEGER"},{"mode":"NULLABLE","name":"string_field_10","type":"STRING"},{"mode":"NULLABLE","name":"int64_field_11","type":"INTEGER"},{"mode":"NULLABLE","name":"int64_field_12","type":"INTEGER"},{"mode":"NULLABLE","name":"string_field_13","type":"STRING"}]' status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerytable/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerytable/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerytable/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/bigquery/v1beta1/bigquerytable/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/_generated_object_bigqueryconnectionconnectionbasic.golden.yaml b/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/_generated_object_bigqueryconnectionconnectionbasic.golden.yaml index 2536e9d5b7..15509c75ff 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/_generated_object_bigqueryconnectionconnectionbasic.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/_generated_object_bigqueryconnectionconnectionbasic.golden.yaml @@ -3,23 +3,19 @@ kind: BigQueryConnectionConnection metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/observed-secret-versions: (removed) - cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 2 + generation: 1 labels: cnrm-test: "true" name: bigqueryconnectionconnection-${uniqueId} namespace: ${uniqueId} spec: - cloudResource: - serviceAccountId: "" + cloudResource: {} location: us-central1 projectRef: external: ${projectId} - resourceID: bigqueryconnectionconnection-${uniqueId} status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" @@ -27,8 +23,8 @@ status: reason: UpToDate status: "True" type: Ready - name: projects/${projectNumber}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId} - observedGeneration: 2 + externalRef: //bigqueryconnection.googleapis.com/projects/${projectId}/locations/us-central1/connections/71389360-831c-431d-8975-837aee2153be + observedGeneration: 1 observedState: cloudResource: - serviceAccountId: bqcx-${projectNumber}-abcd@gcp-sa-bigquery-condel.iam.gserviceaccount.com + serviceAccountID: bqcx-${projectNumber}-abcd@gcp-sa-bigquery-condel.iam.gserviceaccount.com diff --git a/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/_http.log b/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/_http.log index e2d41b62fb..11890e7a2e 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/_http.log @@ -1,31 +1,7 @@ -GET https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId}?alt=json +POST https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections?%24alt=json%3Benum-encoding%3Dint Content-Type: application/json -User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager - -404 Not Found -Cache-Control: private -Content-Type: application/json; charset=UTF-8 -Server: ESF -Vary: Origin -Vary: X-Origin -Vary: Referer -X-Content-Type-Options: nosniff -X-Frame-Options: SAMEORIGIN -X-Xss-Protection: 0 - -{ - "error": { - "code": 404, - "message": "Not found: Connection projects/${projectId}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId}", - "status": "NOT_FOUND" - } -} - ---- - -POST https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections?alt=json&connectionId=bigqueryconnectionconnection-${uniqueId} -Content-Type: application/json -User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager +User-Agent: kcc/controller-manager +x-goog-request-params: parent=projects%2F${projectId}%2Flocations%2Fus-central1 { "cloudResource": {} @@ -48,14 +24,15 @@ X-Xss-Protection: 0 }, "creationTime": "123456789", "lastModifiedTime": "123456789", - "name": "projects/${projectNumber}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId}" + "name": "projects/${projectId}/locations/us-central1/connections/71389360-831c-431d-8975-837aee2153be" } --- -GET https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId}?alt=json +GET https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections/71389360-831c-431d-8975-837aee2153be?%24alt=json%3Benum-encoding%3Dint Content-Type: application/json -User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Flocations%2Fus-central1%2Fconnections%2F71389360-831c-431d-8975-837aee2153be 200 OK Cache-Control: private @@ -74,14 +51,15 @@ X-Xss-Protection: 0 }, "creationTime": "123456789", "lastModifiedTime": "123456789", - "name": "projects/${projectNumber}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId}" + "name": "projects/${projectId}/locations/us-central1/connections/71389360-831c-431d-8975-837aee2153be" } --- -DELETE https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId}?alt=json +DELETE https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections/71389360-831c-431d-8975-837aee2153be?%24alt=json%3Benum-encoding%3Dint Content-Type: application/json -User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Flocations%2Fus-central1%2Fconnections%2F71389360-831c-431d-8975-837aee2153be 200 OK Cache-Control: private diff --git a/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/create.yaml b/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/create.yaml index 511cd2174e..2ad511e52c 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/create.yaml +++ b/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionbasic/create.yaml @@ -20,5 +20,4 @@ spec: location: us-central1 projectRef: external: ${projectId} - cloudResource: - serviceAccountId: "" + cloudResource: {} diff --git a/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/_generated_object_bigqueryconnectionconnectionfull.golden.yaml b/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/_generated_object_bigqueryconnectionconnectionfull.golden.yaml index 6d6b07bc2d..c1a2f08861 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/_generated_object_bigqueryconnectionconnectionfull.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/_generated_object_bigqueryconnectionconnectionfull.golden.yaml @@ -3,25 +3,22 @@ kind: BigQueryConnectionConnection metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/observed-secret-versions: (removed) - cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 3 + generation: 2 labels: cnrm-test: "true" name: bigqueryconnectionconnection-${uniqueId} namespace: ${uniqueId} spec: - cloudResource: - serviceAccountId: "" + cloudResource: {} description: updated connection for cloud resource friendlyName: cloud-resource-connection-updated location: us-central1 projectRef: external: ${projectId} - resourceID: bigqueryconnectionconnection-${uniqueId} + resourceID: 71389360-831c-431d-8975-837aee2153be status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" @@ -29,8 +26,10 @@ status: reason: UpToDate status: "True" type: Ready - name: projects/${projectNumber}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId} - observedGeneration: 3 + externalRef: //bigqueryconnection.googleapis.com/projects/${projectId}/locations/us-central1/connections/71389360-831c-431d-8975-837aee2153be + observedGeneration: 2 observedState: cloudResource: - serviceAccountId: bqcx-${projectNumber}-abcd@gcp-sa-bigquery-condel.iam.gserviceaccount.com + serviceAccountID: bqcx-${projectNumber}-abcd@gcp-sa-bigquery-condel.iam.gserviceaccount.com + description: updated connection for cloud resource + friendlyName: cloud-resource-connection-updated diff --git a/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/_http.log b/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/_http.log index 4772114764..52c09075c0 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/_http.log @@ -1,6 +1,7 @@ -GET https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId}?alt=json +GET https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections/71389360-831c-431d-8975-837aee2153be?%24alt=json%3Benum-encoding%3Dint Content-Type: application/json -User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Flocations%2Fus-central1%2Fconnections%2F71389360-831c-431d-8975-837aee2153be 404 Not Found Cache-Control: private @@ -16,16 +17,17 @@ X-Xss-Protection: 0 { "error": { "code": 404, - "message": "Not found: Connection projects/${projectId}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId}", + "message": "Not found: Connection projects/${projectId}/locations/us-central1/connections/71389360-831c-431d-8975-837aee2153be", "status": "NOT_FOUND" } } --- -POST https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections?alt=json&connectionId=bigqueryconnectionconnection-${uniqueId} +POST https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections?%24alt=json%3Benum-encoding%3Dint Content-Type: application/json -User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager +User-Agent: kcc/controller-manager +x-goog-request-params: parent=projects%2F${projectId}%2Flocations%2Fus-central1 { "cloudResource": {}, @@ -52,14 +54,15 @@ X-Xss-Protection: 0 "description": "test connection for cloud resource", "friendlyName": "cloud-resource-connection", "lastModifiedTime": "123456789", - "name": "projects/${projectNumber}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId}" + "name": "projects/${projectId}/locations/us-central1/connections/71389360-831c-431d-8975-837aee2153be" } --- -GET https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId}?alt=json +GET https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections/71389360-831c-431d-8975-837aee2153be?%24alt=json%3Benum-encoding%3Dint Content-Type: application/json -User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Flocations%2Fus-central1%2Fconnections%2F71389360-831c-431d-8975-837aee2153be 200 OK Cache-Control: private @@ -80,19 +83,18 @@ X-Xss-Protection: 0 "description": "test connection for cloud resource", "friendlyName": "cloud-resource-connection", "lastModifiedTime": "123456789", - "name": "projects/${projectNumber}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId}" + "name": "projects/${projectId}/locations/us-central1/connections/71389360-831c-431d-8975-837aee2153be" } --- -PATCH https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId}?alt=json&updateMask=friendlyName%2Cdescription +PATCH https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections/71389360-831c-431d-8975-837aee2153be?%24alt=json%3Benum-encoding%3Dint&updateMask=friendlyName%2Cdescription Content-Type: application/json -User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Flocations%2Fus-central1%2Fconnections%2F71389360-831c-431d-8975-837aee2153be { - "cloudResource": { - "serviceAccountId": "bqcx-${projectNumber}-abcd@gcp-sa-bigquery-condel.iam.gserviceaccount.com" - }, + "cloudResource": {}, "description": "updated connection for cloud resource", "friendlyName": "cloud-resource-connection-updated" } @@ -116,14 +118,15 @@ X-Xss-Protection: 0 "description": "updated connection for cloud resource", "friendlyName": "cloud-resource-connection-updated", "lastModifiedTime": "123456789", - "name": "projects/${projectNumber}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId}" + "name": "projects/${projectId}/locations/us-central1/connections/71389360-831c-431d-8975-837aee2153be" } --- -GET https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId}?alt=json +GET https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections/71389360-831c-431d-8975-837aee2153be?%24alt=json%3Benum-encoding%3Dint Content-Type: application/json -User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Flocations%2Fus-central1%2Fconnections%2F71389360-831c-431d-8975-837aee2153be 200 OK Cache-Control: private @@ -144,14 +147,15 @@ X-Xss-Protection: 0 "description": "updated connection for cloud resource", "friendlyName": "cloud-resource-connection-updated", "lastModifiedTime": "123456789", - "name": "projects/${projectNumber}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId}" + "name": "projects/${projectId}/locations/us-central1/connections/71389360-831c-431d-8975-837aee2153be" } --- -DELETE https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections/bigqueryconnectionconnection-${uniqueId}?alt=json +DELETE https://bigqueryconnection.googleapis.com/v1/projects/${projectId}/locations/us-central1/connections/71389360-831c-431d-8975-837aee2153be?%24alt=json%3Benum-encoding%3Dint Content-Type: application/json -User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Flocations%2Fus-central1%2Fconnections%2F71389360-831c-431d-8975-837aee2153be 200 OK Cache-Control: private diff --git a/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/create.yaml b/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/create.yaml index e60f9734a4..6fff7793ed 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/create.yaml +++ b/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/create.yaml @@ -17,10 +17,10 @@ kind: BigQueryConnectionConnection metadata: name: bigqueryconnectionconnection-${uniqueId} spec: + resourceID: 71389360-831c-431d-8975-837aee2153be friendlyName: "cloud-resource-connection" description: "test connection for cloud resource" location: us-central1 projectRef: external: ${projectId} - cloudResource: - serviceAccountId: "" + cloudResource: {} diff --git a/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/update.yaml b/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/update.yaml index f55ace41c9..33763fdd40 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/update.yaml +++ b/pkg/test/resourcefixture/testdata/basic/bigqueryconnection/v1alpha1/bigqueryconnectionconnection/bigqueryconnectionconnectionfull/update.yaml @@ -17,10 +17,10 @@ kind: BigQueryConnectionConnection metadata: name: bigqueryconnectionconnection-${uniqueId} spec: + resourceID: 71389360-831c-431d-8975-837aee2153be friendlyName: "cloud-resource-connection-updated" description: "updated connection for cloud resource" location: us-central1 projectRef: external: ${projectId} - cloudResource: - serviceAccountId: "" + cloudResource: {} diff --git a/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/_generated_object_bigtableinstance.golden.yaml b/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/_generated_object_bigtableinstance.golden.yaml index d88fd6304d..91fc890d2c 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/_generated_object_bigtableinstance.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/_generated_object_bigtableinstance.golden.yaml @@ -5,7 +5,7 @@ metadata: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"instanceType":"PRODUCTION"}}' cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstanceautoscaling/_generated_object_bigtableinstanceautoscaling.golden.yaml b/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstanceautoscaling/_generated_object_bigtableinstanceautoscaling.golden.yaml index 237e70bc53..09aa8fc214 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstanceautoscaling/_generated_object_bigtableinstanceautoscaling.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstanceautoscaling/_generated_object_bigtableinstanceautoscaling.golden.yaml @@ -5,11 +5,11 @@ metadata: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"instanceType":"PRODUCTION"}}' cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 4 + generation: 3 labels: cnrm-test: "true" name: btinstance-${uniqueId} @@ -20,27 +20,19 @@ spec: cpuTarget: 70 maxNodes: 5 minNodes: 2 - storageTarget: 2560 clusterId: cluster-1-${uniqueId} - numNodes: 2 - storageType: SSD zone: us-central1-a - autoscalingConfig: cpuTarget: 70 maxNodes: 5 minNodes: 2 - storageTarget: 2560 clusterId: cluster-2-${uniqueId} - numNodes: 2 - storageType: SSD zone: us-central1-b - autoscalingConfig: cpuTarget: 70 maxNodes: 5 minNodes: 2 clusterId: cluster-3-${uniqueId} - numNodes: 2 - storageType: SSD zone: us-central1-c displayName: BigtableSample instanceType: PRODUCTION @@ -52,4 +44,4 @@ status: reason: UpToDate status: "True" type: Ready - observedGeneration: 4 + observedGeneration: 3 diff --git a/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstanceautoscaling/_http.log b/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstanceautoscaling/_http.log index 879da8809e..d54883b5c4 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstanceautoscaling/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstanceautoscaling/_http.log @@ -991,104 +991,6 @@ OK --- -GRPC /google.bigtable.admin.v2.BigtableInstanceAdmin/ListInstances - -{ - "parent": "projects/${projectId}" -} - -OK - -{ - "instances": [ - { - "createTime": "2024-04-01T12:34:56.123456Z", - "displayName": "BigtableSample", - "labels": { - "cnrm-test": "true", - "managed-by-cnrm": "true" - }, - "name": "projects/${projectId}/instances/btinstance-${uniqueId}", - "state": "READY", - "type": "PRODUCTION" - } - ] -} - ---- - -GRPC /google.bigtable.admin.v2.BigtableInstanceAdmin/ListClusters - -{ - "parent": "projects/${projectId}/instances/btinstance-${uniqueId}" -} - -OK - -{ - "clusters": [ - { - "clusterConfig": { - "clusterAutoscalingConfig": { - "autoscalingLimits": { - "maxServeNodes": 5, - "minServeNodes": 2 - }, - "autoscalingTargets": { - "cpuUtilizationPercent": 70, - "storageUtilizationGibPerNode": 2560 - } - } - }, - "defaultStorageType": "SSD", - "location": "projects/${projectId}/locations/us-central1-a", - "name": "projects/${projectId}/instances/btinstance-${uniqueId}/clusters/cluster-1-${uniqueId}", - "serveNodes": 2, - "state": "READY" - }, - { - "clusterConfig": { - "clusterAutoscalingConfig": { - "autoscalingLimits": { - "maxServeNodes": 5, - "minServeNodes": 2 - }, - "autoscalingTargets": { - "cpuUtilizationPercent": 70, - "storageUtilizationGibPerNode": 2560 - } - } - }, - "defaultStorageType": "SSD", - "encryptionConfig": {}, - "location": "projects/${projectId}/locations/us-central1-b", - "name": "projects/${projectId}/instances/btinstance-${uniqueId}/clusters/cluster-2-${uniqueId}", - "serveNodes": 2, - "state": "READY" - }, - { - "clusterConfig": { - "clusterAutoscalingConfig": { - "autoscalingLimits": { - "maxServeNodes": 5, - "minServeNodes": 2 - }, - "autoscalingTargets": { - "cpuUtilizationPercent": 70 - } - } - }, - "defaultStorageType": "SSD", - "location": "projects/${projectId}/locations/us-central1-c", - "name": "projects/${projectId}/instances/btinstance-${uniqueId}/clusters/cluster-3-${uniqueId}", - "serveNodes": 2, - "state": "READY" - } - ] -} - ---- - GRPC /google.bigtable.admin.v2.BigtableInstanceAdmin/DeleteInstance { diff --git a/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstanceautoscaling2/_generated_object_bigtableinstanceautoscaling2.golden.yaml b/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstanceautoscaling2/_generated_object_bigtableinstanceautoscaling2.golden.yaml index 56bf7529ba..d780644c96 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstanceautoscaling2/_generated_object_bigtableinstanceautoscaling2.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstanceautoscaling2/_generated_object_bigtableinstanceautoscaling2.golden.yaml @@ -5,11 +5,11 @@ metadata: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"instanceType":"PRODUCTION"}}' cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 4 + generation: 2 labels: cnrm-test: "true" name: bigtableinstance @@ -22,7 +22,6 @@ spec: minNodes: 3 storageTarget: 2560 clusterId: cluster-1-${uniqueId} - numNodes: 3 storageType: SSD zone: us-central1-a - autoscalingConfig: @@ -31,7 +30,6 @@ spec: minNodes: 2 storageTarget: 2560 clusterId: cluster-2-${uniqueId} - numNodes: 2 storageType: SSD zone: us-central1-b - autoscalingConfig: @@ -40,7 +38,6 @@ spec: minNodes: 2 storageTarget: 2560 clusterId: cluster-3-${uniqueId} - numNodes: 2 storageType: SSD zone: us-central1-c - autoscalingConfig: @@ -49,7 +46,6 @@ spec: minNodes: 2 storageTarget: 2560 clusterId: cluster-4-${uniqueId} - numNodes: 2 storageType: SSD zone: us-central1-f displayName: bigtableinstance @@ -62,4 +58,4 @@ status: reason: UpToDate status: "True" type: Ready - observedGeneration: 4 + observedGeneration: 2 diff --git a/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstanceautoscaling2/_http.log b/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstanceautoscaling2/_http.log index 4c6669d6b0..f87c8f2066 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstanceautoscaling2/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstanceautoscaling2/_http.log @@ -432,123 +432,6 @@ OK --- -GRPC /google.bigtable.admin.v2.BigtableInstanceAdmin/ListInstances - -{ - "parent": "projects/${projectId}" -} - -OK - -{ - "instances": [ - { - "createTime": "2024-04-01T12:34:56.123456Z", - "displayName": "bigtableinstance", - "labels": { - "cnrm-test": "true", - "managed-by-cnrm": "true" - }, - "name": "projects/${projectId}/instances/bt-${uniqueId}", - "state": "READY", - "type": "PRODUCTION" - } - ] -} - ---- - -GRPC /google.bigtable.admin.v2.BigtableInstanceAdmin/ListClusters - -{ - "parent": "projects/${projectId}/instances/bt-${uniqueId}" -} - -OK - -{ - "clusters": [ - { - "clusterConfig": { - "clusterAutoscalingConfig": { - "autoscalingLimits": { - "maxServeNodes": 5, - "minServeNodes": 3 - }, - "autoscalingTargets": { - "cpuUtilizationPercent": 70, - "storageUtilizationGibPerNode": 2560 - } - } - }, - "defaultStorageType": "SSD", - "location": "projects/${projectId}/locations/us-central1-a", - "name": "projects/${projectId}/instances/bt-${uniqueId}/clusters/cluster-1-${uniqueId}", - "serveNodes": 3, - "state": "READY" - }, - { - "clusterConfig": { - "clusterAutoscalingConfig": { - "autoscalingLimits": { - "maxServeNodes": 4, - "minServeNodes": 2 - }, - "autoscalingTargets": { - "cpuUtilizationPercent": 80, - "storageUtilizationGibPerNode": 2560 - } - } - }, - "defaultStorageType": "SSD", - "location": "projects/${projectId}/locations/us-central1-b", - "name": "projects/${projectId}/instances/bt-${uniqueId}/clusters/cluster-2-${uniqueId}", - "serveNodes": 2, - "state": "READY" - }, - { - "clusterConfig": { - "clusterAutoscalingConfig": { - "autoscalingLimits": { - "maxServeNodes": 4, - "minServeNodes": 2 - }, - "autoscalingTargets": { - "cpuUtilizationPercent": 80, - "storageUtilizationGibPerNode": 2560 - } - } - }, - "defaultStorageType": "SSD", - "location": "projects/${projectId}/locations/us-central1-c", - "name": "projects/${projectId}/instances/bt-${uniqueId}/clusters/cluster-3-${uniqueId}", - "serveNodes": 2, - "state": "READY" - }, - { - "clusterConfig": { - "clusterAutoscalingConfig": { - "autoscalingLimits": { - "maxServeNodes": 3, - "minServeNodes": 2 - }, - "autoscalingTargets": { - "cpuUtilizationPercent": 80, - "storageUtilizationGibPerNode": 2560 - } - } - }, - "defaultStorageType": "SSD", - "location": "projects/${projectId}/locations/us-central1-f", - "name": "projects/${projectId}/instances/bt-${uniqueId}/clusters/cluster-4-${uniqueId}", - "serveNodes": 2, - "state": "READY" - } - ] -} - ---- - GRPC /google.bigtable.admin.v2.BigtableInstanceAdmin/ListClusters { @@ -1381,123 +1264,6 @@ OK --- -GRPC /google.bigtable.admin.v2.BigtableInstanceAdmin/ListInstances - -{ - "parent": "projects/${projectId}" -} - -OK - -{ - "instances": [ - { - "createTime": "2024-04-01T12:34:56.123456Z", - "displayName": "bigtableinstance", - "labels": { - "cnrm-test": "true", - "managed-by-cnrm": "true" - }, - "name": "projects/${projectId}/instances/bt-${uniqueId}", - "state": "READY", - "type": "PRODUCTION" - } - ] -} - ---- - -GRPC /google.bigtable.admin.v2.BigtableInstanceAdmin/ListClusters - -{ - "parent": "projects/${projectId}/instances/bt-${uniqueId}" -} - -OK - -{ - "clusters": [ - { - "clusterConfig": { - "clusterAutoscalingConfig": { - "autoscalingLimits": { - "maxServeNodes": 5, - "minServeNodes": 3 - }, - "autoscalingTargets": { - "cpuUtilizationPercent": 70, - "storageUtilizationGibPerNode": 2560 - } - } - }, - "defaultStorageType": "SSD", - "location": "projects/${projectId}/locations/us-central1-a", - "name": "projects/${projectId}/instances/bt-${uniqueId}/clusters/cluster-1-${uniqueId}", - "serveNodes": 3, - "state": "READY" - }, - { - "clusterConfig": { - "clusterAutoscalingConfig": { - "autoscalingLimits": { - "maxServeNodes": 4, - "minServeNodes": 2 - }, - "autoscalingTargets": { - "cpuUtilizationPercent": 80, - "storageUtilizationGibPerNode": 2560 - } - } - }, - "defaultStorageType": "SSD", - "location": "projects/${projectId}/locations/us-central1-b", - "name": "projects/${projectId}/instances/bt-${uniqueId}/clusters/cluster-2-${uniqueId}", - "serveNodes": 2, - "state": "READY" - }, - { - "clusterConfig": { - "clusterAutoscalingConfig": { - "autoscalingLimits": { - "maxServeNodes": 4, - "minServeNodes": 2 - }, - "autoscalingTargets": { - "cpuUtilizationPercent": 80, - "storageUtilizationGibPerNode": 2560 - } - } - }, - "defaultStorageType": "SSD", - "location": "projects/${projectId}/locations/us-central1-c", - "name": "projects/${projectId}/instances/bt-${uniqueId}/clusters/cluster-3-${uniqueId}", - "serveNodes": 2, - "state": "READY" - }, - { - "clusterConfig": { - "clusterAutoscalingConfig": { - "autoscalingLimits": { - "maxServeNodes": 4, - "minServeNodes": 2 - }, - "autoscalingTargets": { - "cpuUtilizationPercent": 80, - "storageUtilizationGibPerNode": 2560 - } - } - }, - "defaultStorageType": "SSD", - "location": "projects/${projectId}/locations/us-central1-f", - "name": "projects/${projectId}/instances/bt-${uniqueId}/clusters/cluster-4-${uniqueId}", - "serveNodes": 2, - "state": "READY" - } - ] -} - ---- - GRPC /google.bigtable.admin.v2.BigtableInstanceAdmin/DeleteInstance { diff --git a/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstancebasic/_generated_object_bigtableinstancebasic.golden.yaml b/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstancebasic/_generated_object_bigtableinstancebasic.golden.yaml index d88fd6304d..75151f77f3 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstancebasic/_generated_object_bigtableinstancebasic.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstancebasic/_generated_object_bigtableinstancebasic.golden.yaml @@ -5,11 +5,11 @@ metadata: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"instanceType":"PRODUCTION"}}' cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 4 + generation: 3 labels: cnrm-test: "true" name: btinstance-${uniqueId} @@ -18,15 +18,12 @@ spec: cluster: - clusterId: cluster-1-${uniqueId} numNodes: 3 - storageType: SSD zone: us-central1-a - clusterId: cluster-2-${uniqueId} numNodes: 1 - storageType: SSD zone: us-west1-b - clusterId: cluster-3-${uniqueId} numNodes: 1 - storageType: SSD zone: us-east1-d displayName: BigtableSample instanceType: PRODUCTION @@ -38,4 +35,4 @@ status: reason: UpToDate status: "True" type: Ready - observedGeneration: 4 + observedGeneration: 3 diff --git a/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstancebasic/_http.log b/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstancebasic/_http.log index 230f4f845e..aaa2338640 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstancebasic/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtableinstance/bigtableinstancebasic/_http.log @@ -755,68 +755,6 @@ OK --- -GRPC /google.bigtable.admin.v2.BigtableInstanceAdmin/ListInstances - -{ - "parent": "projects/${projectId}" -} - -OK - -{ - "instances": [ - { - "createTime": "2024-04-01T12:34:56.123456Z", - "displayName": "BigtableSample", - "labels": { - "cnrm-test": "true", - "managed-by-cnrm": "true" - }, - "name": "projects/${projectId}/instances/btinstance-${uniqueId}", - "state": "READY", - "type": "PRODUCTION" - } - ] -} - ---- - -GRPC /google.bigtable.admin.v2.BigtableInstanceAdmin/ListClusters - -{ - "parent": "projects/${projectId}/instances/btinstance-${uniqueId}" -} - -OK - -{ - "clusters": [ - { - "defaultStorageType": "SSD", - "location": "projects/${projectId}/locations/us-central1-a", - "name": "projects/${projectId}/instances/btinstance-${uniqueId}/clusters/cluster-1-${uniqueId}", - "serveNodes": 3, - "state": "READY" - }, - { - "defaultStorageType": "SSD", - "location": "projects/${projectId}/locations/us-west1-b", - "name": "projects/${projectId}/instances/btinstance-${uniqueId}/clusters/cluster-2-${uniqueId}", - "serveNodes": 1, - "state": "READY" - }, - { - "defaultStorageType": "SSD", - "location": "projects/${projectId}/locations/us-east1-d", - "name": "projects/${projectId}/instances/btinstance-${uniqueId}/clusters/cluster-3-${uniqueId}", - "serveNodes": 1, - "state": "READY" - } - ] -} - ---- - GRPC /google.bigtable.admin.v2.BigtableInstanceAdmin/DeleteInstance { diff --git a/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtabletable/_generated_object_bigtabletable.golden.yaml b/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtabletable/_generated_object_bigtabletable.golden.yaml index 6edde25012..b89531158e 100644 --- a/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtabletable/_generated_object_bigtabletable.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/bigtable/v1beta1/bigtabletable/_generated_object_bigtabletable.golden.yaml @@ -1,24 +1,10 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: bigtable.cnrm.cloud.google.com/v1beta1 kind: BigtableTable metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -31,7 +17,6 @@ spec: columnFamily: - family: family3 - family: family2 - deletionProtection: UNPROTECTED instanceRef: name: bigtable-dep-${uniqueId} resourceID: bigtabletable-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/billingbudgets/v1beta1/billingbudgetsbudget/custombudget/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/billingbudgets/v1beta1/billingbudgetsbudget/custombudget/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/billingbudgets/v1beta1/billingbudgetsbudget/custombudget/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/billingbudgets/v1beta1/billingbudgetsbudget/custombudget/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificate/certificatemanagercertificatemanageddns/_generated_object_certificatemanagercertificatemanageddns.golden.yaml b/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificate/certificatemanagercertificatemanageddns/_generated_object_certificatemanagercertificatemanageddns.golden.yaml index d62f91dc5f..5642d38844 100644 --- a/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificate/certificatemanagercertificatemanageddns/_generated_object_certificatemanagercertificatemanageddns.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificate/certificatemanagercertificatemanageddns/_generated_object_certificatemanagercertificatemanageddns.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/observed-secret-versions: (removed) - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificate/certificatemanagercertificateselfmanaged/_generated_object_certificatemanagercertificateselfmanaged.golden.yaml b/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificate/certificatemanagercertificateselfmanaged/_generated_object_certificatemanagercertificateselfmanaged.golden.yaml index e16fef9d04..b6edac17d6 100644 --- a/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificate/certificatemanagercertificateselfmanaged/_generated_object_certificatemanagercertificateselfmanaged.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificate/certificatemanagercertificateselfmanaged/_generated_object_certificatemanagercertificateselfmanaged.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/observed-secret-versions: (removed) - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificatemap/_generated_object_certificatemanagercertificatemap.golden.yaml b/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificatemap/_generated_object_certificatemanagercertificatemap.golden.yaml index 6354c35dee..791d0a130a 100644 --- a/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificatemap/_generated_object_certificatemanagercertificatemap.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificatemap/_generated_object_certificatemanagercertificatemap.golden.yaml @@ -3,7 +3,7 @@ kind: CertificateManagerCertificateMap metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificatemapentry/_generated_object_certificatemanagercertificatemapentry.golden.yaml b/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificatemapentry/_generated_object_certificatemanagercertificatemapentry.golden.yaml index 1828aed64d..d4d0c74cf3 100644 --- a/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificatemapentry/_generated_object_certificatemanagercertificatemapentry.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificatemapentry/_generated_object_certificatemanagercertificatemapentry.golden.yaml @@ -3,7 +3,7 @@ kind: CertificateManagerCertificateMapEntry metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificatemapentry/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificatemapentry/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificatemapentry/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagercertificatemapentry/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagerdnsauthorization-full/_generated_object_certificatemanagerdnsauthorization-full.golden.yaml b/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagerdnsauthorization-full/_generated_object_certificatemanagerdnsauthorization-full.golden.yaml index 5200b2f1b6..c85de4a8a7 100644 --- a/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagerdnsauthorization-full/_generated_object_certificatemanagerdnsauthorization-full.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagerdnsauthorization-full/_generated_object_certificatemanagerdnsauthorization-full.golden.yaml @@ -3,7 +3,7 @@ kind: CertificateManagerDNSAuthorization metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagerdnsauthorization-minimal/_generated_object_certificatemanagerdnsauthorization-minimal.golden.yaml b/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagerdnsauthorization-minimal/_generated_object_certificatemanagerdnsauthorization-minimal.golden.yaml index d1fd9b783a..210c9be51b 100644 --- a/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagerdnsauthorization-minimal/_generated_object_certificatemanagerdnsauthorization-minimal.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagerdnsauthorization-minimal/_generated_object_certificatemanagerdnsauthorization-minimal.golden.yaml @@ -3,7 +3,7 @@ kind: CertificateManagerDNSAuthorization metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagerdnsauthorization/_generated_object_certificatemanagerdnsauthorization.golden.yaml b/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagerdnsauthorization/_generated_object_certificatemanagerdnsauthorization.golden.yaml index 177e830fa0..5f273957bb 100644 --- a/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagerdnsauthorization/_generated_object_certificatemanagerdnsauthorization.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/certificatemanager/v1beta1/certificatemanagerdnsauthorization/_generated_object_certificatemanagerdnsauthorization.golden.yaml @@ -3,7 +3,7 @@ kind: CertificateManagerDNSAuthorization metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/cloudbuild/v1beta1/cloudbuildworkerpool/_http.log b/pkg/test/resourcefixture/testdata/basic/cloudbuild/v1beta1/cloudbuildworkerpool/_http.log index 51dc14cfc3..f72d5e8651 100644 --- a/pkg/test/resourcefixture/testdata/basic/cloudbuild/v1beta1/cloudbuildworkerpool/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/cloudbuild/v1beta1/cloudbuildworkerpool/_http.log @@ -243,10 +243,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- @@ -667,7 +703,9 @@ X-Frame-Options: SAMEORIGIN X-Xss-Protection: 0 { + "createTime": "2024-04-01T12:34:56.123456Z", "displayName": "New CloudBuild WorkerPool", + "etag": "abcdef0123A=", "name": "projects/${projectId}/locations/us-central1/workerPools/cloudbuildworkerpool-${uniqueId}", "privatePoolV1Config": { "networkConfig": { @@ -679,7 +717,9 @@ X-Xss-Protection: 0 "diskSizeGb": "100", "machineType": "e2-medium" } - } + }, + "state": 2, + "updateTime": "2024-04-01T12:34:56.123456Z" } --- @@ -691,6 +731,7 @@ x-goog-request-params: location=us-central1 { "displayName": "Updated CloudBuild WorkerPool", + "etag": "abcdef0123A=", "name": "projects/${projectId}/locations/us-central1/workerPools/cloudbuildworkerpool-${uniqueId}", "privatePoolV1Config": { "networkConfig": { @@ -755,6 +796,7 @@ X-Xss-Protection: 0 "name": "projects/${projectId}/locations/us-central1/workerPools/cloudbuildworkerpool-${uniqueId}/operations/${operationID}", "response": { "@type": "type.googleapis.com/google.devtools.cloudbuild.v1.WorkerPool", + "createTime": "2024-04-01T12:34:56.123456Z", "displayName": "New CloudBuild WorkerPool", "etag": "abcdef0123A=", "name": "projects/${projectId}/locations/us-central1/workerPools/cloudbuildworkerpool-${uniqueId}", @@ -793,7 +835,9 @@ X-Frame-Options: SAMEORIGIN X-Xss-Protection: 0 { + "createTime": "2024-04-01T12:34:56.123456Z", "displayName": "New CloudBuild WorkerPool", + "etag": "abcdef0123A=", "name": "projects/${projectId}/locations/us-central1/workerPools/cloudbuildworkerpool-${uniqueId}", "privatePoolV1Config": { "networkConfig": { @@ -806,6 +850,7 @@ X-Xss-Protection: 0 "machineType": "e2-medium" } }, + "state": 2, "updateTime": "2024-04-01T12:34:56.123456Z" } @@ -1033,10 +1078,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- diff --git a/pkg/test/resourcefixture/testdata/basic/cloudfunctions/v1beta1/cloudfunctionsfunction/httpsfunction/_generated_object_httpsfunction.golden.yaml b/pkg/test/resourcefixture/testdata/basic/cloudfunctions/v1beta1/cloudfunctionsfunction/httpsfunction/_generated_object_httpsfunction.golden.yaml index 4e63a26479..9ce6cd5e00 100644 --- a/pkg/test/resourcefixture/testdata/basic/cloudfunctions/v1beta1/cloudfunctionsfunction/httpsfunction/_generated_object_httpsfunction.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/cloudfunctions/v1beta1/cloudfunctionsfunction/httpsfunction/_generated_object_httpsfunction.golden.yaml @@ -1,23 +1,9 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: cloudfunctions.cnrm.cloud.google.com/v1beta1 kind: CloudFunctionsFunction metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -30,7 +16,6 @@ spec: entryPoint: helloGET httpsTrigger: securityLevel: SECURE_OPTIONAL - ingressSettings: INGRESS_SETTINGS_UNSPECIFIED projectRef: external: projects/${projectId} region: us-west2 @@ -38,7 +23,6 @@ spec: runtime: nodejs10 sourceArchiveUrl: gs://config-connector-samples/cloudfunctionsfunction/http_trigger.zip timeout: 120s - vpcConnectorEgressSettings: VPC_CONNECTOR_EGRESS_SETTINGS_UNSPECIFIED status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/basic/cloudfunctions/v1beta1/cloudfunctionsfunction/httpsfunction/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/cloudfunctions/v1beta1/cloudfunctionsfunction/httpsfunction/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/cloudfunctions/v1beta1/cloudfunctionsfunction/httpsfunction/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/cloudfunctions/v1beta1/cloudfunctionsfunction/httpsfunction/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/cloudids/v1beta1/cloudidsendpoint/_http.log b/pkg/test/resourcefixture/testdata/basic/cloudids/v1beta1/cloudidsendpoint/_http.log index 63888cbf98..c55a22ed24 100644 --- a/pkg/test/resourcefixture/testdata/basic/cloudids/v1beta1/cloudidsendpoint/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/cloudids/v1beta1/cloudidsendpoint/_http.log @@ -190,10 +190,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- @@ -799,10 +835,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- diff --git a/pkg/test/resourcefixture/testdata/basic/cloudscheduler/v1beta1/cloudschedulerjob/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/cloudscheduler/v1beta1/cloudschedulerjob/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/cloudscheduler/v1beta1/cloudschedulerjob/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/cloudscheduler/v1beta1/cloudschedulerjob/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeaddress/globalcomputeaddress/_generated_object_globalcomputeaddress.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeaddress/globalcomputeaddress/_generated_object_globalcomputeaddress.golden.yaml index 53f1ed0332..c0813597e8 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeaddress/globalcomputeaddress/_generated_object_globalcomputeaddress.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeaddress/globalcomputeaddress/_generated_object_globalcomputeaddress.golden.yaml @@ -1,24 +1,10 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeAddress metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -28,7 +14,6 @@ metadata: name: computeaddress-${uniqueId} namespace: ${uniqueId} spec: - address: 8.8.8.8 addressType: INTERNAL description: a test global address ipVersion: IPV4 diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeaddress/globalcomputeaddress/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeaddress/globalcomputeaddress/_http.log index fcbac77ec6..17410b2969 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeaddress/globalcomputeaddress/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeaddress/globalcomputeaddress/_http.log @@ -279,10 +279,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- @@ -415,8 +451,44 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeaddress/regionalcomputeaddress/_generated_object_regionalcomputeaddress.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeaddress/regionalcomputeaddress/_generated_object_regionalcomputeaddress.golden.yaml index 1eda63d3cc..5be84c001f 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeaddress/regionalcomputeaddress/_generated_object_regionalcomputeaddress.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeaddress/regionalcomputeaddress/_generated_object_regionalcomputeaddress.golden.yaml @@ -1,24 +1,10 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeAddress metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -28,7 +14,6 @@ metadata: name: computeaddress-${uniqueId} namespace: ${uniqueId} spec: - address: 8.8.8.8 addressType: INTERNAL description: a test address location: us-central1 @@ -46,4 +31,4 @@ status: observedGeneration: 2 observedState: address: 8.8.8.8 - selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/networks/computeaddress-${uniqueId} + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeaddress-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeaddress/regionalcomputeaddress/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeaddress/regionalcomputeaddress/_http.log index 74f37a8338..e71d88998b 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeaddress/regionalcomputeaddress/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeaddress/regionalcomputeaddress/_http.log @@ -381,11 +381,11 @@ X-Xss-Protection: 0 "errors": [ { "domain": "global", - "message": "address \"projects/${projectId}/regions/us-central1/networks/computeaddress-${uniqueId}\" not found", + "message": "address \"projects/${projectId}/regions/us-central1/addresses/computeaddress-${uniqueId}\" not found", "reason": "notFound" } ], - "message": "address \"projects/${projectId}/regions/us-central1/networks/computeaddress-${uniqueId}\" not found" + "message": "address \"projects/${projectId}/regions/us-central1/addresses/computeaddress-${uniqueId}\" not found" } } @@ -423,10 +423,48 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- @@ -459,7 +497,7 @@ X-Xss-Protection: 0 }, "name": "computeaddress-${uniqueId}", "region": "projects/${projectId}/global/regions/us-central1", - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/networks/computeaddress-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeaddress-${uniqueId}", "subnetwork": "projects/${projectId}/regions/us-central1/subnetworks/${subnetworkID}" } @@ -529,7 +567,7 @@ X-Xss-Protection: 0 }, "name": "computeaddress-${uniqueId}", "region": "projects/${projectId}/global/regions/us-central1", - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/networks/computeaddress-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeaddress-${uniqueId}", "subnetwork": "projects/${projectId}/regions/us-central1/subnetworks/${subnetworkID}" } @@ -555,8 +593,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computedisk/computediskfromsourcedisk/_generated_object_computediskfromsourcedisk.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computedisk/computediskfromsourcedisk/_generated_object_computediskfromsourcedisk.golden.yaml index 5fd2ef1a4c..853aa01aa6 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computedisk/computediskfromsourcedisk/_generated_object_computediskfromsourcedisk.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computedisk/computediskfromsourcedisk/_generated_object_computediskfromsourcedisk.golden.yaml @@ -1,24 +1,10 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeDisk metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/observed-secret-versions: (removed) - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -30,13 +16,11 @@ metadata: spec: description: an example disk from source disk location: us-central1-a - physicalBlockSizeBytes: 4096 projectRef: external: ${projectId} resourceID: computedisk-1-${uniqueId} sourceDiskRef: name: computedisk-2-${uniqueId} - type: pd-standard status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computedisk/regionalcomputedisk/_generated_object_regionalcomputedisk.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computedisk/regionalcomputedisk/_generated_object_regionalcomputedisk.golden.yaml index e64b0573db..57fc9eafb5 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computedisk/regionalcomputedisk/_generated_object_regionalcomputedisk.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computedisk/regionalcomputedisk/_generated_object_regionalcomputedisk.golden.yaml @@ -1,24 +1,10 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeDisk metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/observed-secret-versions: (removed) - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -31,14 +17,12 @@ metadata: spec: description: a sample regional disk location: us-central1 - physicalBlockSizeBytes: 4096 projectRef: external: ${projectId} replicaZones: - - projects/${projectId}/global/zones/us-central1-a - - projects/${projectId}/global/zones/us-central1-f + - us-central1-a + - us-central1-f resourceID: computedisk-${uniqueId} - type: pd-standard status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computedisk/zonalcomputedisk/_generated_object_zonalcomputedisk.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computedisk/zonalcomputedisk/_generated_object_zonalcomputedisk.golden.yaml index d5a5cc463a..63e32308e3 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computedisk/zonalcomputedisk/_generated_object_zonalcomputedisk.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computedisk/zonalcomputedisk/_generated_object_zonalcomputedisk.golden.yaml @@ -1,24 +1,10 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeDisk metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/observed-secret-versions: (removed) - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -31,11 +17,9 @@ metadata: spec: description: an example disk without reference location: us-central1-a - physicalBlockSizeBytes: 4096 projectRef: external: ${projectId} resourceID: computedisk-${uniqueId} - type: pd-standard status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrule/_generated_object_globalcomputeforwardingrule.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrule/_generated_object_globalcomputeforwardingrule.golden.yaml index 3595b207f5..8a8f698648 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrule/_generated_object_globalcomputeforwardingrule.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrule/_generated_object_globalcomputeforwardingrule.golden.yaml @@ -1,17 +1,3 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeForwardingRule metadata: @@ -47,6 +33,7 @@ status: status: "True" type: Ready creationTimestamp: "1970-01-01T00:00:00Z" + externalRef: //compute.googleapis.com/projects/${projectId}/global/forwardingrules/computeglobalforwardingrule-${uniqueId} labelFingerprint: abcdef0123A= observedGeneration: 2 selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrule/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrule/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrule/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrule/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/_generated_object_globalcomputeforwardingrulefull.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/_generated_object_globalcomputeforwardingrulefull.golden.yaml new file mode 100644 index 0000000000..61ee51661b --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/_generated_object_globalcomputeforwardingrulefull.golden.yaml @@ -0,0 +1,47 @@ +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeForwardingRule +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/project-id: ${projectId} + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 2 + labels: + cnrm-test: "true" + label-one: value-two + name: computeglobalforwardingrule-${uniqueId} + namespace: ${uniqueId} +spec: + description: A global forwarding rule + ipAddress: + ip: 0.0.0.0 + ipProtocol: TCP + ipVersion: IPV4 + loadBalancingScheme: INTERNAL_SELF_MANAGED + location: global + metadataFilters: + - filterLabels: + - name: PLANET + value: MARS + filterMatchCriteria: MATCH_ANY + networkRef: + name: default + networkTier: PREMIUM + portRange: "80" + target: + targetHTTPProxyRef: + name: computetargethttpproxy-2-${uniqueId} +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + creationTimestamp: "1970-01-01T00:00:00Z" + externalRef: //compute.googleapis.com/projects/${projectId}/global/forwardingrules/computeglobalforwardingrule-${uniqueId} + labelFingerprint: abcdef0123A= + observedGeneration: 2 + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/_http.log new file mode 100644 index 0000000000..17d48f79dc --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/_http.log @@ -0,0 +1,1502 @@ +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "Default network for the project", + "id": "000000000000000000000", + "kind": "compute#network", + "name": "${networkID}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}", + "selfLinkWithId": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}" +} + +--- + +PATCH https://compute.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "networkFirewallPolicyEnforcementOrder": "AFTER_CLASSIC_FIREWALL" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "compute.networks.patch", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${networkID}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "compute.networks.patch", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${networkID}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "Default network for the project", + "id": "000000000000000000000", + "kind": "compute#network", + "name": "${networkID}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}", + "selfLinkWithId": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}" +} + +--- + +PATCH https://compute.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "networkFirewallPolicyEnforcementOrder": "AFTER_CLASSIC_FIREWALL" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "compute.networks.patch", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${networkID}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "compute.networks.patch", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${networkID}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "Default network for the project", + "id": "000000000000000000000", + "kind": "compute#network", + "name": "${networkID}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}", + "selfLinkWithId": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "checkIntervalSec": 10, + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "name": "computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "loadBalancingScheme": "INTERNAL_SELF_MANAGED", + "name": "computebackendservice-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "INTERNAL_SELF_MANAGED", + "name": "computebackendservice-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "${networkID}Service": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "name": "computeurlmap-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "${networkID}Service": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "targetHttpProxy \"projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "targetHttpProxy \"projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "test description", + "name": "computetargethttpproxy-${uniqueId}", + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "id": "000000000000000000000", + "kind": "compute#targetHttpProxy", + "name": "computetargethttpproxy-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-${uniqueId}", + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "targetHttpProxy \"projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-2-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "targetHttpProxy \"projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-2-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "other test description", + "name": "computetargethttpproxy-2-${uniqueId}", + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "other test description", + "id": "000000000000000000000", + "kind": "compute#targetHttpProxy", + "name": "computetargethttpproxy-2-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-2-${uniqueId}", + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "forwardingRule \"projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "forwardingRule \"projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId} + +{ + "IPAddress": "0.0.0.0", + "IPProtocol": "TCP", + "description": "A global forwarding rule", + "ipVersion": "IPV4", + "labels": { + "cnrm-test": "true", + "label-one": "value-one", + "managed-by-cnrm": "true" + }, + "loadBalancingScheme": "INTERNAL_SELF_MANAGED", + "metadataFilters": [ + { + "filterLabels": [ + { + "name": "PLANET", + "value": "MARS" + } + ], + "filterMatchCriteria": "MATCH_ANY" + } + ], + "name": "computeglobalforwardingrule-${uniqueId}", + "network": "projects/${projectId}/global/networks/${networkID}", + "networkTier": "PREMIUM", + "portRange": "80", + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&operation=${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "IPAddress": "0.0.0.0", + "IPProtocol": "TCP", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "A global forwarding rule", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "ipVersion": "IPV4", + "kind": "compute#forwardingRule", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "label-one": "value-one", + "managed-by-cnrm": "true" + }, + "loadBalancingScheme": "INTERNAL_SELF_MANAGED", + "metadataFilters": [ + { + "filterLabels": [ + { + "name": "PLANET", + "value": "MARS" + } + ], + "filterMatchCriteria": "MATCH_ANY" + } + ], + "name": "computeglobalforwardingrule-${uniqueId}", + "network": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}", + "networkTier": "PREMIUM", + "portRange": "80-80", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID}/setLabels +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&resource=computeglobalforwardingrule-${uniqueId} + +{ + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "label-one": "value-two", + "managed-by-cnrm": "true" + } +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetLabels", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&operation=${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetLabels", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "IPAddress": "0.0.0.0", + "IPProtocol": "TCP", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "A global forwarding rule", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "ipVersion": "IPV4", + "kind": "compute#forwardingRule", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "label-one": "value-two", + "managed-by-cnrm": "true" + }, + "loadBalancingScheme": "INTERNAL_SELF_MANAGED", + "metadataFilters": [ + { + "filterLabels": [ + { + "name": "PLANET", + "value": "MARS" + } + ], + "filterMatchCriteria": "MATCH_ANY" + } + ], + "name": "computeglobalforwardingrule-${uniqueId}", + "network": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}", + "networkTier": "PREMIUM", + "portRange": "80-80", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID}/setTarget +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +{ + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-2-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetTarget", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&operation=${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetTarget", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "IPAddress": "0.0.0.0", + "IPProtocol": "TCP", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "A global forwarding rule", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "ipVersion": "IPV4", + "kind": "compute#forwardingRule", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "label-one": "value-two", + "managed-by-cnrm": "true" + }, + "loadBalancingScheme": "INTERNAL_SELF_MANAGED", + "metadataFilters": [ + { + "filterLabels": [ + { + "name": "PLANET", + "value": "MARS" + } + ], + "filterMatchCriteria": "MATCH_ANY" + } + ], + "name": "computeglobalforwardingrule-${uniqueId}", + "network": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/networks/${networkID}", + "networkTier": "PREMIUM", + "portRange": "80-80", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-2-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&operation=${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "other test description", + "id": "000000000000000000000", + "kind": "compute#targetHttpProxy", + "name": "computetargethttpproxy-2-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-2-${uniqueId}", + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "id": "000000000000000000000", + "kind": "compute#targetHttpProxy", + "name": "computetargethttpproxy-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-${uniqueId}", + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpProxies/computetargethttpproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "${networkID}Service": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "INTERNAL_SELF_MANAGED", + "name": "computebackendservice-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/create.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/create.yaml new file mode 100644 index 0000000000..4bd715b589 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/create.yaml @@ -0,0 +1,41 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeForwardingRule +metadata: + labels: + label-one: "value-one" + name: computeglobalforwardingrule-${uniqueId} +spec: + description: "A global forwarding rule" + location: global + target: + targetHTTPProxyRef: + name: computetargethttpproxy-${uniqueId} + # The 'ports', 'port_range', and 'allPorts' fields are mutually exclusive. + portRange: "80" + loadBalancingScheme: INTERNAL_SELF_MANAGED + ipAddress: + ip: "0.0.0.0" + ipProtocol: "TCP" + ipVersion: "IPV4" + networkRef: + name: default + networkTier: "PREMIUM" + metadataFilters: + - filterMatchCriteria: "MATCH_ANY" + filterLabels: + - name: "PLANET" + value: "MARS" \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/dependencies.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/dependencies.yaml new file mode 100644 index 0000000000..a992b42b0c --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/dependencies.yaml @@ -0,0 +1,73 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeNetwork +metadata: + annotations: + cnrm.cloud.google.com/deletion-policy: "abandon" + name: default +spec: + description: Default network for the project +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeHealthCheck +metadata: + name: computehealthcheck-${uniqueId} +spec: + checkIntervalSec: 10 + httpHealthCheck: + port: 80 + location: global +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeBackendService +metadata: + name: computebackendservice-${uniqueId} +spec: + healthChecks: + - healthCheckRef: + name: computehealthcheck-${uniqueId} + location: global + loadBalancingScheme: INTERNAL_SELF_MANAGED +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeURLMap +metadata: + name: computeurlmap-${uniqueId} +spec: + defaultService: + backendServiceRef: + name: computebackendservice-${uniqueId} + location: global +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetHTTPProxy +metadata: + name: computetargethttpproxy-${uniqueId} +spec: + description: "test description" + urlMapRef: + name: computeurlmap-${uniqueId} + location: global +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetHTTPProxy +metadata: + name: computetargethttpproxy-2-${uniqueId} +spec: + description: "other test description" + urlMapRef: + name: computeurlmap-${uniqueId} + location: global diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/update.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/update.yaml new file mode 100644 index 0000000000..6d078a664e --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulefull/update.yaml @@ -0,0 +1,41 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeForwardingRule +metadata: + labels: + label-one: "value-two" + name: computeglobalforwardingrule-${uniqueId} +spec: + description: "A global forwarding rule" + location: global + target: + targetHTTPProxyRef: + name: computetargethttpproxy-2-${uniqueId} + # The 'ports', 'port_range', and 'allPorts' fields are mutually exclusive. + portRange: "80" + loadBalancingScheme: INTERNAL_SELF_MANAGED + ipAddress: + ip: "0.0.0.0" + ipProtocol: "TCP" + ipVersion: "IPV4" + networkRef: + name: default + networkTier: "PREMIUM" + metadataFilters: + - filterMatchCriteria: "MATCH_ANY" + filterLabels: + - name: "PLANET" + value: "MARS" diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/_generated_object_globalcomputeforwardingrulehttps.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/_generated_object_globalcomputeforwardingrulehttps.golden.yaml new file mode 100644 index 0000000000..4b645b887a --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/_generated_object_globalcomputeforwardingrulehttps.golden.yaml @@ -0,0 +1,37 @@ +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeForwardingRule +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/project-id: ${projectId} + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 2 + labels: + cnrm-test: "true" + label-one: value-two + name: computeglobalforwardingrule-${uniqueId} + namespace: ${uniqueId} +spec: + description: A global forwarding rule + ipAddress: + addressRef: + name: computeaddress-${uniqueId} + location: global + portRange: "80" + target: + targetHTTPSProxyRef: + name: computetargethttpsproxy2-${uniqueId} +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + creationTimestamp: "1970-01-01T00:00:00Z" + externalRef: //compute.googleapis.com/projects/${projectId}/global/forwardingrules/computeglobalforwardingrule-${uniqueId} + labelFingerprint: abcdef0123A= + observedGeneration: 2 + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/_http.log new file mode 100644 index 0000000000..31e0110913 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/_http.log @@ -0,0 +1,2066 @@ +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "address \"projects/${projectId}/global/addresses/computeaddress-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "address \"projects/${projectId}/global/addresses/computeaddress-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "a test global address", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "computeaddress-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "address": "8.8.8.8", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "a test global address", + "id": "000000000000000000000", + "kind": "compute#address", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "computeaddress-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}/setLabels?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + } +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "address": "8.8.8.8", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "a test global address", + "id": "000000000000000000000", + "kind": "compute#address", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "computeaddress-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "checkIntervalSec": 10, + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "name": "computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "name": "computeurlmap-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "name": "computeurlmap-2-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-2-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "sslCertificate \"projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "sslCertificate \"projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "kind": "compute#sslCertificate", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "targetHttpsProxy \"projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "targetHttpsProxy \"projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "test description", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "DISABLE", + "sslCertificates": [ + "projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ], + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#targetHttpsProxy", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "DISABLE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "sslCertificates": [ + "https://www.googleapis.com/compute/beta/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ], + "urlMap": "https://www.googleapis.com/compute/beta/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "targetHttpsProxy \"projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy2-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "targetHttpsProxy \"projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy2-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "another test description", + "name": "computetargethttpsproxy2-${uniqueId}", + "quicOverride": "DISABLE", + "sslCertificates": [ + "projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ], + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "another test description", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#targetHttpsProxy", + "name": "computetargethttpsproxy2-${uniqueId}", + "quicOverride": "DISABLE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy2-${uniqueId}", + "sslCertificates": [ + "https://www.googleapis.com/compute/beta/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ], + "urlMap": "https://www.googleapis.com/compute/beta/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "forwardingRule \"projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "forwardingRule \"projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId} + +{ + "IPAddress": "8.8.8.8", + "description": "A global forwarding rule", + "labels": { + "cnrm-test": "true", + "label-one": "value-one", + "managed-by-cnrm": "true" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computeglobalforwardingrule-${uniqueId}", + "portRange": "80", + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&operation=${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "IPAddress": "8.8.8.8", + "IPProtocol": "TCP", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "A global forwarding rule", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#forwardingRule", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "label-one": "value-one", + "managed-by-cnrm": "true" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computeglobalforwardingrule-${uniqueId}", + "networkTier": "PREMIUM", + "portRange": "80-80", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID}/setLabels +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&resource=computeglobalforwardingrule-${uniqueId} + +{ + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "label-one": "value-two", + "managed-by-cnrm": "true" + } +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetLabels", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&operation=${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetLabels", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "IPAddress": "8.8.8.8", + "IPProtocol": "TCP", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "A global forwarding rule", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#forwardingRule", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "label-one": "value-two", + "managed-by-cnrm": "true" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computeglobalforwardingrule-${uniqueId}", + "networkTier": "PREMIUM", + "portRange": "80-80", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID}/setTarget +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +{ + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy2-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetTarget", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&operation=${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetTarget", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "IPAddress": "8.8.8.8", + "IPProtocol": "TCP", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "A global forwarding rule", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#forwardingRule", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "label-one": "value-two", + "managed-by-cnrm": "true" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computeglobalforwardingrule-${uniqueId}", + "networkTier": "PREMIUM", + "portRange": "80-80", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy2-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&operation=${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "another test description", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#targetHttpsProxy", + "name": "computetargethttpsproxy2-${uniqueId}", + "quicOverride": "DISABLE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy2-${uniqueId}", + "sslCertificates": [ + "https://www.googleapis.com/compute/beta/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ], + "urlMap": "https://www.googleapis.com/compute/beta/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#targetHttpsProxy", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "DISABLE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "sslCertificates": [ + "https://www.googleapis.com/compute/beta/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ], + "urlMap": "https://www.googleapis.com/compute/beta/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "kind": "compute#sslCertificate", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-2-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "address": "8.8.8.8", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "a test global address", + "id": "000000000000000000000", + "kind": "compute#address", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "computeaddress-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/create.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/create.yaml new file mode 100644 index 0000000000..d17c1dbf43 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/create.yaml @@ -0,0 +1,30 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeForwardingRule +metadata: + labels: + label-one: "value-one" + name: computeglobalforwardingrule-${uniqueId} +spec: + description: "A global forwarding rule" + location: global + target: + targetHTTPSProxyRef: + name: computetargethttpsproxy-${uniqueId} + portRange: "80" + ipAddress: + addressRef: + name: computeaddress-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/dependencies.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/dependencies.yaml new file mode 100644 index 0000000000..7f13e0fad9 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/dependencies.yaml @@ -0,0 +1,158 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeAddress +metadata: + name: computeaddress-${uniqueId} +spec: + description: a test global address + location: global +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeHealthCheck +metadata: + name: computehealthcheck-${uniqueId} +spec: + checkIntervalSec: 10 + httpHealthCheck: + port: 80 + location: global +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeBackendService +metadata: + name: computebackendservice-${uniqueId} +spec: + healthChecks: + - healthCheckRef: + name: computehealthcheck-${uniqueId} + location: global +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeURLMap +metadata: + name: computeurlmap-${uniqueId} +spec: + defaultService: + backendServiceRef: + name: computebackendservice-${uniqueId} + location: global +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeURLMap +metadata: + name: computeurlmap-2-${uniqueId} +spec: + defaultService: + backendServiceRef: + name: computebackendservice-${uniqueId} + location: global +--- +apiVersion: v1 +kind: Secret +metadata: + name: secret-${uniqueId} +stringData: + certificate: | + -----BEGIN CERTIFICATE----- + MIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x + CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk + Z2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX + DTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD + VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw + ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV + corkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9 + uUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe + 601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a + 7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE + Fxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud + AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh + jqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1 + Z+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS + JD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k + O4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3 + 95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE= + -----END CERTIFICATE----- + privateKey: | + -----BEGIN RSA PRIVATE KEY----- + MIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7 + O5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo + 6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7 + vM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD + MY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ + YGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay + 64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY + bOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK + h84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm + fbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr + t+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ + cR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE + mL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy + e2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk + KWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW + ILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA + SGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx + McwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2 + BR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+ + fPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9 + 6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+ + 7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4 + R3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob + hCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+ + VtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo= + -----END RSA PRIVATE KEY----- +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeSSLCertificate +metadata: + name: computesslcertificate-${uniqueId} +spec: + location: global + certificate: + valueFrom: + secretKeyRef: + name: secret-${uniqueId} + key: certificate + privateKey: + valueFrom: + secretKeyRef: + name: secret-${uniqueId} + key: privateKey +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetHTTPSProxy +metadata: + name: computetargethttpsproxy-${uniqueId} +spec: + description: "test description" + urlMapRef: + name: computeurlmap-${uniqueId} + sslCertificates: + - name: computesslcertificate-${uniqueId} + quicOverride: DISABLE + location: global +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetHTTPSProxy +metadata: + name: computetargethttpsproxy2-${uniqueId} +spec: + description: "another test description" + urlMapRef: + name: computeurlmap-${uniqueId} + sslCertificates: + - name: computesslcertificate-${uniqueId} + quicOverride: DISABLE + location: global \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/update.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/update.yaml new file mode 100644 index 0000000000..e57407b413 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulehttps/update.yaml @@ -0,0 +1,30 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeForwardingRule +metadata: + labels: + label-one: "value-two" + name: computeglobalforwardingrule-${uniqueId} +spec: + description: "A global forwarding rule" + location: global + target: + targetHTTPSProxyRef: + name: computetargethttpsproxy2-${uniqueId} + portRange: "80" + ipAddress: + addressRef: + name: computeaddress-${uniqueId} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/_generated_object_globalcomputeforwardingrulessl.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/_generated_object_globalcomputeforwardingrulessl.golden.yaml new file mode 100644 index 0000000000..4b0f210f69 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/_generated_object_globalcomputeforwardingrulessl.golden.yaml @@ -0,0 +1,38 @@ +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeForwardingRule +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/project-id: ${projectId} + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 2 + labels: + cnrm-test: "true" + label-one: value-two + name: computeglobalforwardingrule-${uniqueId} + namespace: ${uniqueId} +spec: + description: A global forwarding rule + ipAddress: + addressRef: + name: computeaddress-${uniqueId} + loadBalancingScheme: EXTERNAL + location: global + portRange: "443" + target: + targetSSLProxyRef: + name: computetargetsslproxy2-${uniqueId} +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + creationTimestamp: "1970-01-01T00:00:00Z" + externalRef: //compute.googleapis.com/projects/${projectId}/global/forwardingrules/computeglobalforwardingrule-${uniqueId} + labelFingerprint: abcdef0123A= + observedGeneration: 2 + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/_http.log new file mode 100644 index 0000000000..ef23a003d0 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/_http.log @@ -0,0 +1,1777 @@ +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "address \"projects/${projectId}/global/addresses/computeaddress-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "address \"projects/${projectId}/global/addresses/computeaddress-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "a test global address", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "computeaddress-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "address": "8.8.8.8", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "a test global address", + "id": "000000000000000000000", + "kind": "compute#address", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "computeaddress-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}/setLabels?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + } +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "address": "8.8.8.8", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "a test global address", + "id": "000000000000000000000", + "kind": "compute#address", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "computeaddress-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "checkIntervalSec": 10, + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "name": "computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "protocol": "SSL" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "protocol": "SSL", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "sslCertificate \"projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "sslCertificate \"projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "kind": "compute#sslCertificate", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "targetSslProxy \"projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "targetSslProxy \"projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "test description", + "name": "computetargetsslproxy-${uniqueId}", + "proxyHeader": "NONE", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "sslCertificates": [ + "projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ] +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetSslProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetSslProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "id": "000000000000000000000", + "kind": "compute#targetSslProxy", + "name": "computetargetsslproxy-${uniqueId}", + "proxyHeader": "NONE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "sslCertificates": [ + "projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ] +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "targetSslProxy \"projects/${projectId}/global/targetSslProxies/computetargetsslproxy2-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "targetSslProxy \"projects/${projectId}/global/targetSslProxies/computetargetsslproxy2-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "other test description", + "name": "computetargetsslproxy2-${uniqueId}", + "proxyHeader": "NONE", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "sslCertificates": [ + "projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ] +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetSslProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetSslProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "other test description", + "id": "000000000000000000000", + "kind": "compute#targetSslProxy", + "name": "computetargetsslproxy2-${uniqueId}", + "proxyHeader": "NONE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy2-${uniqueId}", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "sslCertificates": [ + "projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ] +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "forwardingRule \"projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "forwardingRule \"projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId} + +{ + "IPAddress": "8.8.8.8", + "description": "A global forwarding rule", + "labels": { + "cnrm-test": "true", + "label-one": "value-one", + "managed-by-cnrm": "true" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computeglobalforwardingrule-${uniqueId}", + "portRange": "443", + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&operation=${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "IPAddress": "8.8.8.8", + "IPProtocol": "TCP", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "A global forwarding rule", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#forwardingRule", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "label-one": "value-one", + "managed-by-cnrm": "true" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computeglobalforwardingrule-${uniqueId}", + "networkTier": "PREMIUM", + "portRange": "443-443", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID}/setLabels +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&resource=computeglobalforwardingrule-${uniqueId} + +{ + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "label-one": "value-two", + "managed-by-cnrm": "true" + } +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetLabels", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&operation=${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetLabels", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "IPAddress": "8.8.8.8", + "IPProtocol": "TCP", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "A global forwarding rule", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#forwardingRule", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "label-one": "value-two", + "managed-by-cnrm": "true" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computeglobalforwardingrule-${uniqueId}", + "networkTier": "PREMIUM", + "portRange": "443-443", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID}/setTarget +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +{ + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy2-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetTarget", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&operation=${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetTarget", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "IPAddress": "8.8.8.8", + "IPProtocol": "TCP", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "A global forwarding rule", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#forwardingRule", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "label-one": "value-two", + "managed-by-cnrm": "true" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computeglobalforwardingrule-${uniqueId}", + "networkTier": "PREMIUM", + "portRange": "443-443", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy2-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&operation=${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "other test description", + "id": "000000000000000000000", + "kind": "compute#targetSslProxy", + "name": "computetargetsslproxy2-${uniqueId}", + "proxyHeader": "NONE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy2-${uniqueId}", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "sslCertificates": [ + "projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ] +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetSslProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetSslProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "id": "000000000000000000000", + "kind": "compute#targetSslProxy", + "name": "computetargetsslproxy-${uniqueId}", + "proxyHeader": "NONE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "sslCertificates": [ + "projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ] +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetSslProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetSslProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "kind": "compute#sslCertificate", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "protocol": "SSL", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "address": "8.8.8.8", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "a test global address", + "id": "000000000000000000000", + "kind": "compute#address", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "computeaddress-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/create.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/create.yaml new file mode 100644 index 0000000000..ce87492877 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/create.yaml @@ -0,0 +1,31 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeForwardingRule +metadata: + labels: + label-one: "value-one" + name: computeglobalforwardingrule-${uniqueId} +spec: + description: "A global forwarding rule" + location: global + target: + targetSSLProxyRef: + name: computetargetsslproxy-${uniqueId} + portRange: "443" + loadBalancingScheme: EXTERNAL + ipAddress: + addressRef: + name: computeaddress-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/dependencies.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/dependencies.yaml new file mode 100644 index 0000000000..845e2a9f99 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/dependencies.yaml @@ -0,0 +1,135 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeAddress +metadata: + name: computeaddress-${uniqueId} +spec: + description: a test global address + location: global +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeHealthCheck +metadata: + name: computehealthcheck-${uniqueId} +spec: + checkIntervalSec: 10 + httpHealthCheck: + port: 80 + location: global +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeBackendService +metadata: + name: computebackendservice-${uniqueId} +spec: + healthChecks: + - healthCheckRef: + name: computehealthcheck-${uniqueId} + location: global + protocol: SSL +--- +apiVersion: v1 +kind: Secret +metadata: + name: secret-${uniqueId} +stringData: + certificate: | + -----BEGIN CERTIFICATE----- + MIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x + CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk + Z2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX + DTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD + VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw + ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV + corkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9 + uUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe + 601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a + 7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE + Fxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud + AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh + jqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1 + Z+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS + JD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k + O4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3 + 95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE= + -----END CERTIFICATE----- + privateKey: | + -----BEGIN RSA PRIVATE KEY----- + MIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7 + O5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo + 6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7 + vM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD + MY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ + YGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay + 64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY + bOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK + h84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm + fbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr + t+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ + cR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE + mL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy + e2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk + KWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW + ILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA + SGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx + McwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2 + BR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+ + fPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9 + 6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+ + 7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4 + R3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob + hCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+ + VtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo= + -----END RSA PRIVATE KEY----- +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeSSLCertificate +metadata: + name: computesslcertificate-${uniqueId} +spec: + location: global + certificate: + valueFrom: + secretKeyRef: + name: secret-${uniqueId} + key: certificate + privateKey: + valueFrom: + secretKeyRef: + name: secret-${uniqueId} + key: privateKey +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetSSLProxy +metadata: + name: computetargetsslproxy-${uniqueId} +spec: + description: "test description" + backendServiceRef: + name: computebackendservice-${uniqueId} + sslCertificates: + - name: computesslcertificate-${uniqueId} +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetSSLProxy +metadata: + name: computetargetsslproxy2-${uniqueId} +spec: + description: "other test description" + backendServiceRef: + name: computebackendservice-${uniqueId} + sslCertificates: + - name: computesslcertificate-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/update.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/update.yaml new file mode 100644 index 0000000000..8a9261d827 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingrulessl/update.yaml @@ -0,0 +1,31 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeForwardingRule +metadata: + labels: + label-one: "value-two" + name: computeglobalforwardingrule-${uniqueId} +spec: + description: "A global forwarding rule" + location: global + target: + targetSSLProxyRef: + name: computetargetsslproxy2-${uniqueId} + portRange: "443" + loadBalancingScheme: EXTERNAL + ipAddress: + addressRef: + name: computeaddress-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/_generated_object_globalcomputeforwardingruletcp.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/_generated_object_globalcomputeforwardingruletcp.golden.yaml new file mode 100644 index 0000000000..966d258dbf --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/_generated_object_globalcomputeforwardingruletcp.golden.yaml @@ -0,0 +1,39 @@ +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeForwardingRule +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/project-id: ${projectId} + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 2 + labels: + cnrm-test: "true" + label-one: value-two + name: computeglobalforwardingrule-${uniqueId} + namespace: ${uniqueId} +spec: + description: A global forwarding rule + ipAddress: + addressRef: + name: computeaddress-${uniqueId} + ipProtocol: TCP + loadBalancingScheme: EXTERNAL + location: global + portRange: "110" + target: + targetTCPProxyRef: + name: computetargettcpproxy2-${uniqueId} +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + creationTimestamp: "1970-01-01T00:00:00Z" + externalRef: //compute.googleapis.com/projects/${projectId}/global/forwardingrules/computeglobalforwardingrule-${uniqueId} + labelFingerprint: abcdef0123A= + observedGeneration: 2 + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/_http.log new file mode 100644 index 0000000000..e4edb5ca97 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/_http.log @@ -0,0 +1,1541 @@ +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "address \"projects/${projectId}/global/addresses/computeaddress-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "address \"projects/${projectId}/global/addresses/computeaddress-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "a test global address", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "computeaddress-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "address": "8.8.8.8", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "a test global address", + "id": "000000000000000000000", + "kind": "compute#address", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "computeaddress-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}/setLabels?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + } +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "address": "8.8.8.8", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "a test global address", + "id": "000000000000000000000", + "kind": "compute#address", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "computeaddress-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "checkIntervalSec": 10, + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "name": "computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "protocol": "TCP" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "protocol": "TCP", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "targetTcpProxy \"projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "targetTcpProxy \"projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "test description", + "name": "computetargettcpproxy-${uniqueId}", + "proxyHeader": "NONE", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetTcpProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetTcpProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "id": "000000000000000000000", + "kind": "compute#targetTcpProxy", + "name": "computetargettcpproxy-${uniqueId}", + "proxyHeader": "NONE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "targetTcpProxy \"projects/${projectId}/global/targetTcpProxies/computetargettcpproxy2-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "targetTcpProxy \"projects/${projectId}/global/targetTcpProxies/computetargettcpproxy2-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "other test description", + "name": "computetargettcpproxy2-${uniqueId}", + "proxyHeader": "NONE", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetTcpProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetTcpProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "other test description", + "id": "000000000000000000000", + "kind": "compute#targetTcpProxy", + "name": "computetargettcpproxy2-${uniqueId}", + "proxyHeader": "NONE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy2-${uniqueId}", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "forwardingRule \"projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "forwardingRule \"projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId} + +{ + "IPAddress": "8.8.8.8", + "IPProtocol": "TCP", + "description": "A global forwarding rule", + "labels": { + "cnrm-test": "true", + "label-one": "value-one", + "managed-by-cnrm": "true" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computeglobalforwardingrule-${uniqueId}", + "portRange": "110", + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&operation=${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "IPAddress": "8.8.8.8", + "IPProtocol": "TCP", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "A global forwarding rule", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#forwardingRule", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "label-one": "value-one", + "managed-by-cnrm": "true" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computeglobalforwardingrule-${uniqueId}", + "networkTier": "PREMIUM", + "portRange": "110-110", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID}/setLabels +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&resource=computeglobalforwardingrule-${uniqueId} + +{ + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "label-one": "value-two", + "managed-by-cnrm": "true" + } +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetLabels", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&operation=${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetLabels", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "IPAddress": "8.8.8.8", + "IPProtocol": "TCP", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "A global forwarding rule", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#forwardingRule", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "label-one": "value-two", + "managed-by-cnrm": "true" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computeglobalforwardingrule-${uniqueId}", + "networkTier": "PREMIUM", + "portRange": "110-110", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID}/setTarget +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +{ + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy2-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetTarget", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&operation=${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetTarget", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "IPAddress": "8.8.8.8", + "IPProtocol": "TCP", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "A global forwarding rule", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#forwardingRule", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "label-one": "value-two", + "managed-by-cnrm": "true" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computeglobalforwardingrule-${uniqueId}", + "networkTier": "PREMIUM", + "portRange": "110-110", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "target": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy2-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/${forwardingRuleID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&forwarding_rule=computeglobalforwardingrule-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project=${projectId}&operation=${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${forwardingRulesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/forwardingRules/computeglobalforwardingrule-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "other test description", + "id": "000000000000000000000", + "kind": "compute#targetTcpProxy", + "name": "computetargettcpproxy2-${uniqueId}", + "proxyHeader": "NONE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy2-${uniqueId}", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetTcpProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetTcpProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "id": "000000000000000000000", + "kind": "compute#targetTcpProxy", + "name": "computetargettcpproxy-${uniqueId}", + "proxyHeader": "NONE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetTcpProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetTcpProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "protocol": "TCP", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "address": "8.8.8.8", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "a test global address", + "id": "000000000000000000000", + "kind": "compute#address", + "labelFingerprint": "abcdef0123A=", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "computeaddress-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/create.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/create.yaml new file mode 100644 index 0000000000..cc14bd75f0 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/create.yaml @@ -0,0 +1,32 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeForwardingRule +metadata: + labels: + label-one: "value-one" + name: computeglobalforwardingrule-${uniqueId} +spec: + description: "A global forwarding rule" + location: global + target: + targetTCPProxyRef: + name: computetargettcpproxy-${uniqueId} + portRange: "110" + ipProtocol: "TCP" + loadBalancingScheme: EXTERNAL + ipAddress: + addressRef: + name: computeaddress-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/dependencies.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/dependencies.yaml new file mode 100644 index 0000000000..ddc66b60c2 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/dependencies.yaml @@ -0,0 +1,66 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeAddress +metadata: + name: computeaddress-${uniqueId} +spec: + description: a test global address + location: global +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeHealthCheck +metadata: + name: computehealthcheck-${uniqueId} +spec: + checkIntervalSec: 10 + httpHealthCheck: + port: 80 + location: global +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeBackendService +metadata: + name: computebackendservice-${uniqueId} +spec: + healthChecks: + - healthCheckRef: + name: computehealthcheck-${uniqueId} + location: global + protocol: TCP +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetTCPProxy +metadata: + annotations: + cnrm.cloud.google.com/project-id: ${projectId} + name: computetargettcpproxy-${uniqueId} +spec: + description: "test description" + backendServiceRef: + name: computebackendservice-${uniqueId} + proxyHeader: NONE +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetTCPProxy +metadata: + annotations: + cnrm.cloud.google.com/project-id: ${projectId} + name: computetargettcpproxy2-${uniqueId} +spec: + description: "other test description" + backendServiceRef: + name: computebackendservice-${uniqueId} + proxyHeader: NONE diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/update.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/update.yaml new file mode 100644 index 0000000000..407c673267 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/globalcomputeforwardingruletcp/update.yaml @@ -0,0 +1,32 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeForwardingRule +metadata: + labels: + label-one: "value-two" + name: computeglobalforwardingrule-${uniqueId} +spec: + description: "A global forwarding rule" + location: global + target: + targetTCPProxyRef: + name: computetargettcpproxy2-${uniqueId} + portRange: "110" + ipProtocol: "TCP" + loadBalancingScheme: EXTERNAL + ipAddress: + addressRef: + name: computeaddress-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/regionalcomputeforwardingrule/_generated_object_regionalcomputeforwardingrule.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/regionalcomputeforwardingrule/_generated_object_regionalcomputeforwardingrule.golden.yaml index 62ddb1576b..0e214b39c9 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/regionalcomputeforwardingrule/_generated_object_regionalcomputeforwardingrule.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/regionalcomputeforwardingrule/_generated_object_regionalcomputeforwardingrule.golden.yaml @@ -1,17 +1,3 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeForwardingRule metadata: @@ -45,6 +31,7 @@ status: status: "True" type: Ready creationTimestamp: "1970-01-01T00:00:00Z" + externalRef: //compute.googleapis.com/projects/${projectId}/regions/us-central1/forwardingrules/computeregionalforwardingrule-${uniqueId} labelFingerprint: abcdef0123A= observedGeneration: 1 selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/forwardingRules/computeregionalforwardingrule-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/regionalcomputeforwardingrule/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/regionalcomputeforwardingrule/_http.log index cade0a3ade..38db2c7bd9 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/regionalcomputeforwardingrule/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/regionalcomputeforwardingrule/_http.log @@ -19,11 +19,11 @@ X-Xss-Protection: 0 "errors": [ { "domain": "global", - "message": "address \"projects/${projectId}/regions/us-central1/networks/computeraddress-${uniqueId}\" not found", + "message": "address \"projects/${projectId}/regions/us-central1/addresses/computeraddress-${uniqueId}\" not found", "reason": "notFound" } ], - "message": "address \"projects/${projectId}/regions/us-central1/networks/computeraddress-${uniqueId}\" not found" + "message": "address \"projects/${projectId}/regions/us-central1/addresses/computeraddress-${uniqueId}\" not found" } } @@ -60,10 +60,48 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeraddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeraddress-${uniqueId}", + "user": "user@example.com" } --- @@ -96,7 +134,7 @@ X-Xss-Protection: 0 }, "name": "computeraddress-${uniqueId}", "region": "projects/${projectId}/global/regions/us-central1", - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/networks/computeraddress-${uniqueId}" + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeraddress-${uniqueId}" } --- @@ -166,7 +204,7 @@ X-Xss-Protection: 0 }, "name": "computeraddress-${uniqueId}", "region": "projects/${projectId}/global/regions/us-central1", - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/networks/computeraddress-${uniqueId}" + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeraddress-${uniqueId}" } --- @@ -907,7 +945,7 @@ X-Xss-Protection: 0 }, "name": "computeraddress-${uniqueId}", "region": "projects/${projectId}/global/regions/us-central1", - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/networks/computeraddress-${uniqueId}" + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeraddress-${uniqueId}" } --- @@ -932,8 +970,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeraddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeraddress-${uniqueId}", + "user": "user@example.com" } \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/regionalforwardingrulepsc/_generated_object_regionalforwardingrulepsc.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/regionalforwardingrulepsc/_generated_object_regionalforwardingrulepsc.golden.yaml index e7cd0ca8e0..83b85f958d 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/regionalforwardingrulepsc/_generated_object_regionalforwardingrulepsc.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/regionalforwardingrulepsc/_generated_object_regionalforwardingrulepsc.golden.yaml @@ -34,6 +34,7 @@ status: status: "True" type: Ready creationTimestamp: "1970-01-01T00:00:00Z" + externalRef: //compute.googleapis.com/projects/${projectId}/regions/us-central1/forwardingrules/computeforwardingrule-${uniqueId} labelFingerprint: abcdef0123A= observedGeneration: 1 selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/forwardingRules/computeforwardingrule-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/regionalforwardingrulepsc/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/regionalforwardingrulepsc/_http.log index ef6acb601c..1ce772e0c4 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/regionalforwardingrulepsc/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeforwardingrule/regionalforwardingrulepsc/_http.log @@ -506,7 +506,7 @@ X-Xss-Protection: 0 --- -GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeaddress-${uniqueId}?alt=json +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/${networkID}?alt=json Content-Type: application/json User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager @@ -568,15 +568,53 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "1725556260292294180", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/networks/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "1725556260292294180", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/networks/computeaddress-${uniqueId}", + "user": "user@example.com" } --- -GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeaddress-${uniqueId}?alt=json +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/${networkID}?alt=json Content-Type: application/json User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager @@ -609,7 +647,7 @@ X-Xss-Protection: 0 --- -POST https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeaddress-${uniqueId}/setLabels?alt=json +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/${networkID}/setLabels?alt=json Content-Type: application/json User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager @@ -645,7 +683,7 @@ X-Xss-Protection: 0 --- -GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeaddress-${uniqueId}?alt=json +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/${networkID}?alt=json Content-Type: application/json User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager @@ -2463,7 +2501,7 @@ X-Xss-Protection: 0 --- -GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeaddress-${uniqueId}?alt=json +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/${networkID}?alt=json Content-Type: application/json User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager @@ -2496,7 +2534,7 @@ X-Xss-Protection: 0 --- -DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/computeaddress-${uniqueId}?alt=json +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/addresses/${networkID}?alt=json Content-Type: application/json User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager @@ -2516,10 +2554,48 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "1725556260292294180", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/networks/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "1725556260292294180", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/networks/computeaddress-${uniqueId}", + "user": "user@example.com" } --- diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computehealthcheck/globalcomputehealthcheck/_generated_object_globalcomputehealthcheck.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computehealthcheck/globalcomputehealthcheck/_generated_object_globalcomputehealthcheck.golden.yaml index b1dffb20ba..9c025e92eb 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computehealthcheck/globalcomputehealthcheck/_generated_object_globalcomputehealthcheck.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computehealthcheck/globalcomputehealthcheck/_generated_object_globalcomputehealthcheck.golden.yaml @@ -1,24 +1,10 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeHealthCheck metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -29,14 +15,10 @@ metadata: namespace: ${uniqueId} spec: checkIntervalSec: 15 - healthyThreshold: 2 location: global resourceID: computehealthcheck-${uniqueId} tcpHealthCheck: port: 88 - proxyHeader: NONE - timeoutSec: 5 - unhealthyThreshold: 2 status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computehealthcheck/regionalcomputehealthcheck/_generated_object_regionalcomputehealthcheck.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computehealthcheck/regionalcomputehealthcheck/_generated_object_regionalcomputehealthcheck.golden.yaml index d3ea522ee5..136499c7f4 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computehealthcheck/regionalcomputehealthcheck/_generated_object_regionalcomputehealthcheck.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computehealthcheck/regionalcomputehealthcheck/_generated_object_regionalcomputehealthcheck.golden.yaml @@ -1,24 +1,10 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeHealthCheck metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -29,14 +15,10 @@ metadata: namespace: ${uniqueId} spec: checkIntervalSec: 15 - healthyThreshold: 2 location: us-central1 resourceID: computehealthcheck-${uniqueId} tcpHealthCheck: port: 88 - proxyHeader: NONE - timeoutSec: 5 - unhealthyThreshold: 2 status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeimage/_generated_object_computeimage.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeimage/_generated_object_computeimage.golden.yaml index 05726da0e0..37309cf857 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeimage/_generated_object_computeimage.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeimage/_generated_object_computeimage.golden.yaml @@ -4,11 +4,11 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 2 + generation: 3 labels: cnrm-test: "true" label-one: value-one @@ -27,5 +27,5 @@ status: status: "True" type: Ready creationTimestamp: "1970-01-01T00:00:00Z" - observedGeneration: 2 + observedGeneration: 3 selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/global/images/computeimage-test-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeimage/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeimage/_http.log index 009cce1a8f..c4a78c4b7e 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeimage/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeimage/_http.log @@ -199,6 +199,74 @@ X-Xss-Protection: 0 --- +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/images/computeimage-test-${uniqueId}/setLabels?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "labels": { + "cnrm-test": "true", + "label-one": "value-one", + "managed-by-cnrm": "true" + } +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/images/computeimage-test-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "diskSizeGb": "500", + "id": "000000000000000000000", + "kind": "compute#image", + "labels": { + "cnrm-test": "true", + "label-one": "value-one", + "managed-by-cnrm": "true" + }, + "name": "computeimage-test-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/images/computeimage-test-${uniqueId}", + "sourceDisk": "projects/${projectId}/zones/us-central1-a/disks/computedisk-${uniqueId}" +} + +--- + DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/images/computeimage-test-${uniqueId}?alt=json Content-Type: application/json User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeinstance/computeinstancebasicexample/_generated_object_computeinstancebasicexample.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeinstance/computeinstancebasicexample/_generated_object_computeinstancebasicexample.golden.yaml index a07410e9e0..d9a0d0c9e0 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeinstance/computeinstancebasicexample/_generated_object_computeinstancebasicexample.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeinstance/computeinstancebasicexample/_generated_object_computeinstancebasicexample.golden.yaml @@ -1,17 +1,3 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeInstance metadata: @@ -20,11 +6,11 @@ metadata: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/observed-secret-versions: (removed) cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 4 + generation: 3 labels: cnrm-test: "true" label-one: value-two @@ -32,19 +18,10 @@ metadata: namespace: ${uniqueId} spec: attachedDisk: - - mode: READ_WRITE - sourceDiskRef: + - sourceDiskRef: name: computedisk-1-${uniqueId} bootDisk: autoDelete: false - initializeParams: - labels: - cnrm-test: "true" - managed-by-cnrm: "true" - sourceImageRef: - external: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-11-bullseye-v20231010 - type: pd-standard - mode: READ_WRITE sourceDiskRef: name: computedisk-${uniqueId} description: an basic instance example @@ -85,5 +62,5 @@ status: currentStatus: RUNNING instanceId: "1111111111111111" labelFingerprint: abcdef0123A= - observedGeneration: 4 + observedGeneration: 3 selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/zones/us-west1-a/instances/computeinstance-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeinstance/computeinstancebasicexample/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeinstance/computeinstancebasicexample/_http.log index e8a82dde91..e7e96d08fa 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeinstance/computeinstancebasicexample/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeinstance/computeinstancebasicexample/_http.log @@ -587,11 +587,11 @@ X-Xss-Protection: 0 "errors": [ { "domain": "global", - "message": "address \"projects/${projectId}/regions/us-west1/networks/computeaddress-${uniqueId}\" not found", + "message": "address \"projects/${projectId}/regions/us-west1/addresses/computeaddress-${uniqueId}\" not found", "reason": "notFound" } ], - "message": "address \"projects/${projectId}/regions/us-west1/networks/computeaddress-${uniqueId}\" not found" + "message": "address \"projects/${projectId}/regions/us-west1/addresses/computeaddress-${uniqueId}\" not found" } } @@ -628,10 +628,48 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- @@ -664,7 +702,7 @@ X-Xss-Protection: 0 "name": "computeaddress-${uniqueId}", "purpose": "GCE_ENDPOINT", "region": "projects/${projectId}/global/regions/us-west1", - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/networks/computeaddress-${uniqueId}" + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-${uniqueId}" } --- @@ -733,7 +771,7 @@ X-Xss-Protection: 0 "name": "computeaddress-${uniqueId}", "purpose": "GCE_ENDPOINT", "region": "projects/${projectId}/global/regions/us-west1", - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/networks/computeaddress-${uniqueId}" + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-${uniqueId}" } --- @@ -759,11 +797,11 @@ X-Xss-Protection: 0 "errors": [ { "domain": "global", - "message": "address \"projects/${projectId}/regions/us-west1/networks/computeaddress-2-${uniqueId}\" not found", + "message": "address \"projects/${projectId}/regions/us-west1/addresses/computeaddress-2-${uniqueId}\" not found", "reason": "notFound" } ], - "message": "address \"projects/${projectId}/regions/us-west1/networks/computeaddress-2-${uniqueId}\" not found" + "message": "address \"projects/${projectId}/regions/us-west1/addresses/computeaddress-2-${uniqueId}\" not found" } } @@ -799,10 +837,48 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-2-${uniqueId}", + "user": "user@example.com" } --- @@ -834,7 +910,7 @@ X-Xss-Protection: 0 }, "name": "computeaddress-2-${uniqueId}", "region": "projects/${projectId}/global/regions/us-west1", - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/networks/computeaddress-2-${uniqueId}" + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-2-${uniqueId}" } --- @@ -902,7 +978,7 @@ X-Xss-Protection: 0 }, "name": "computeaddress-2-${uniqueId}", "region": "projects/${projectId}/global/regions/us-west1", - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/networks/computeaddress-2-${uniqueId}" + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-2-${uniqueId}" } --- @@ -2033,7 +2109,7 @@ X-Xss-Protection: 0 --- -GET https://compute.googleapis.com/compute/v1/projects/${projectId}/zones/us-west1-a/instances/computeinstance-${uniqueId}?alt=json&prettyPrint=false +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/zones/us-west1-a/instances/computeinstance-${uniqueId}?alt=json&prettyPrint=false User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager 200 OK @@ -2048,85 +2124,21 @@ X-Frame-Options: SAMEORIGIN X-Xss-Protection: 0 { - "canIpForward": false, - "creationTimestamp": "2024-04-01T12:34:56.123456Z", - "deletionProtection": false, - "description": "an basic instance example", - "disks": [ - { - "boot": true, - "mode": "READ_WRITE", - "source": "projects/${projectId}/zones/us-west1-a/disks/computedisk-${uniqueId}" - }, - { - "mode": "READ_WRITE", - "source": "projects/${projectId}/zones/us-west1-a/disks/computedisk-1-${uniqueId}" - } - ], "id": "000000000000000000000", - "kind": "compute#instance", - "labelFingerprint": "abcdef0123A=", - "labels": { - "cnrm-test": "true", - "label-one": "value-two", - "managed-by-cnrm": "true" - }, - "machineType": "projects/${projectId}/zones/us-west1-a/machineTypes/n1-standard-2", - "metadata": { - "items": [ - { - "key": "bar", - "value": "baz" - }, - { - "key": "foo", - "value": "bar" - }, - { - "key": "startup-script", - "value": "echo hi \u003e /test.txt" - } - ] - }, - "name": "computeinstance-${uniqueId}", - "networkInterfaces": [ - { - "accessConfigs": [ - { - "natIP": "8.8.8.8", - "type": "ONE_TO_ONE_NAT" - } - ], - "network": "projects/${projectId}/global/networks/${networkID}", - "networkIP": "8.8.8.8" - } - ], - "params": {}, - "scheduling": { - "automaticRestart": false, - "instanceTerminationAction": "", - "onHostMaintenance": "TERMINATE", - "preemptible": true, - "provisioningModel": "" - }, - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/zones/us-west1-a/instances/computeinstance-${uniqueId}", - "serviceAccounts": [ - { - "email": "gsa-${uniqueId}@${projectId}.iam.gserviceaccount.com", - "scopes": [ - "https://www.googleapis.com/auth/compute.readonly" - ] - } - ], - "status": "RUNNING", - "tags": {}, - "zone": "https://www.googleapis.com/compute/v1/projects/${projectId}/zones/us-west1-a" + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" } --- -GET https://compute.googleapis.com/compute/v1/projects/${projectId}/zones/us-west1-a/disks/computedisk-${uniqueId}?alt=json&prettyPrint=false -User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager 200 OK Cache-Control: private @@ -2140,27 +2152,25 @@ X-Frame-Options: SAMEORIGIN X-Xss-Protection: 0 { + "address": "8.8.8.8", + "addressType": "EXTERNAL", "creationTimestamp": "2024-04-01T12:34:56.123456Z", "id": "000000000000000000000", - "kind": "compute#disk", + "kind": "compute#address", "labels": { "cnrm-test": "true", "managed-by-cnrm": "true" }, - "name": "computedisk-${uniqueId}", - "physicalBlockSizeBytes": "4096", - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/zones/us-west1-a/disks/computedisk-${uniqueId}", - "sourceImage": "https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-11-bullseye-v20231010", - "sourceImageId": "2443108620951880213", - "status": "READY", - "type": "projects/${projectId}/zones/us-west1-a/diskTypes/pd-standard", - "zone": "https://www.googleapis.com/compute/v1/projects/${projectId}/zones/us-west1-a" + "name": "computeaddress-2-${uniqueId}", + "region": "projects/${projectId}/global/regions/us-west1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-2-${uniqueId}" } --- -DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/zones/us-west1-a/instances/computeinstance-${uniqueId}?alt=json&prettyPrint=false -User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager 200 OK Cache-Control: private @@ -2178,49 +2188,21 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" -} - ---- - -GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-2-${uniqueId}?alt=json -Content-Type: application/json -User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager - -200 OK -Cache-Control: private -Content-Type: application/json; charset=UTF-8 -Server: ESF -Vary: Origin -Vary: X-Origin -Vary: Referer -X-Content-Type-Options: nosniff -X-Frame-Options: SAMEORIGIN -X-Xss-Protection: 0 - -{ - "address": "8.8.8.8", - "addressType": "EXTERNAL", - "creationTimestamp": "2024-04-01T12:34:56.123456Z", - "id": "000000000000000000000", - "kind": "compute#address", - "labels": { - "cnrm-test": "true", - "managed-by-cnrm": "true" - }, - "name": "computeaddress-2-${uniqueId}", - "region": "projects/${projectId}/global/regions/us-west1", - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/networks/computeaddress-2-${uniqueId}" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-2-${uniqueId}", + "user": "user@example.com" } --- -DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-2-${uniqueId}?alt=json -Content-Type: application/json -User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager 200 OK Cache-Control: private @@ -2234,14 +2216,20 @@ X-Frame-Options: SAMEORIGIN X-Xss-Protection: 0 { + "endTime": "2024-04-01T12:34:56.123456Z", "id": "000000000000000000000", "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", - "progress": 0, - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "operationType": "delete", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-2-${uniqueId}", + "user": "user@example.com" } --- @@ -2274,7 +2262,7 @@ X-Xss-Protection: 0 "name": "computeaddress-${uniqueId}", "purpose": "GCE_ENDPOINT", "region": "projects/${projectId}/global/regions/us-west1", - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/networks/computeaddress-${uniqueId}" + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-${uniqueId}" } --- @@ -2299,10 +2287,48 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-west1/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeinstance/computeinstancewithencrypteddisk/_generated_object_computeinstancewithencrypteddisk.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeinstance/computeinstancewithencrypteddisk/_generated_object_computeinstancewithencrypteddisk.golden.yaml index 4481e3f32a..39b440021b 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeinstance/computeinstancewithencrypteddisk/_generated_object_computeinstancewithencrypteddisk.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeinstance/computeinstancewithencrypteddisk/_generated_object_computeinstancewithencrypteddisk.golden.yaml @@ -1,17 +1,3 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeInstance metadata: @@ -19,7 +5,7 @@ metadata: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/observed-secret-versions: (removed) cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -34,14 +20,6 @@ spec: autoDelete: false diskEncryptionKeyRaw: value: SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0= - initializeParams: - labels: - cnrm-test: "true" - managed-by-cnrm: "true" - sourceImageRef: - external: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-11-bullseye-v20231010 - type: pd-standard - mode: READ_WRITE sourceDiskRef: name: computedisk-${uniqueId} description: an basic instance example diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenetwork/_generated_object_computenetwork.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenetwork/_generated_object_computenetwork.golden.yaml index 556ff435dc..c096a64d8b 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenetwork/_generated_object_computenetwork.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenetwork/_generated_object_computenetwork.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -17,7 +17,6 @@ metadata: spec: autoCreateSubnetworks: false enableUlaInternalIpv6: true - networkFirewallPolicyEnforcementOrder: AFTER_CLASSIC_FIREWALL resourceID: computenetwork-${uniqueId} routingMode: GLOBAL status: diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodegroup/_generated_object_computenodegroup.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodegroup/_generated_object_computenodegroup.golden.yaml index 44a01fa141..e8ef29210d 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodegroup/_generated_object_computenodegroup.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodegroup/_generated_object_computenodegroup.golden.yaml @@ -1,24 +1,10 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeNodeGroup metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -29,7 +15,6 @@ metadata: namespace: ${uniqueId} spec: description: A single sole-tenant node in the us-central1-b zone. - maintenancePolicy: DEFAULT nodeTemplateRef: name: computenodetemplate-${uniqueId} resourceID: computenodegroup-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodegroup/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodegroup/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodegroup/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodegroup/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodetemplate/_generated_object_computenodetemplate.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodetemplate/_generated_object_computenodetemplate.golden.yaml index 865b6f12b2..f3c296e231 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodetemplate/_generated_object_computenodetemplate.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodetemplate/_generated_object_computenodetemplate.golden.yaml @@ -1,24 +1,10 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeNodeTemplate metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -29,7 +15,6 @@ metadata: name: computenodetemplate-${uniqueId} namespace: ${uniqueId} spec: - cpuOvercommitType: NONE description: Node template for sole tenant nodes running in us-central1, with 96vCPUs and any amount of memory on any machine type. nodeTypeFlexibility: diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodetemplate/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodetemplate/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodetemplate/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computenodetemplate/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesslcertificate/globalcomputesslcertificate/_generated_object_globalcomputesslcertificate.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesslcertificate/globalcomputesslcertificate/_generated_object_globalcomputesslcertificate.golden.yaml new file mode 100644 index 0000000000..de076ca176 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesslcertificate/globalcomputesslcertificate/_generated_object_globalcomputesslcertificate.golden.yaml @@ -0,0 +1,41 @@ +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeSSLCertificate +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/observed-secret-versions: (removed) + cnrm.cloud.google.com/project-id: ${projectId} + cnrm.cloud.google.com/state-into-spec: absent + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 2 + labels: + cnrm-test: "true" + name: computesslcertificate-${uniqueId} + namespace: ${uniqueId} +spec: + certificate: + valueFrom: + secretKeyRef: + key: certificate + name: secret-${uniqueId} + description: example compute SSL certificate + location: global + privateKey: + valueFrom: + secretKeyRef: + key: privateKey + name: secret-${uniqueId} + resourceID: computesslcertificate-${uniqueId} +status: + certificateId: 1111111111111111 + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + creationTimestamp: "1970-01-01T00:00:00Z" + observedGeneration: 2 + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesslcertificate/globalcomputesslcertificate/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesslcertificate/globalcomputesslcertificate/_http.log new file mode 100644 index 0000000000..29e256e60b --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesslcertificate/globalcomputesslcertificate/_http.log @@ -0,0 +1,191 @@ +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "sslCertificate \"projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "sslCertificate \"projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "description": "example compute SSL certificate", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "example compute SSL certificate", + "id": "000000000000000000000", + "kind": "compute#sslCertificate", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesslcertificate/regionalcomputesslcertificate/_generated_object_regionalcomputesslcertificate.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesslcertificate/regionalcomputesslcertificate/_generated_object_regionalcomputesslcertificate.golden.yaml new file mode 100644 index 0000000000..f69e8d07f2 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesslcertificate/regionalcomputesslcertificate/_generated_object_regionalcomputesslcertificate.golden.yaml @@ -0,0 +1,41 @@ +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeSSLCertificate +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/observed-secret-versions: (removed) + cnrm.cloud.google.com/project-id: ${projectId} + cnrm.cloud.google.com/state-into-spec: absent + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 2 + labels: + cnrm-test: "true" + name: computesslcertificate-${uniqueId} + namespace: ${uniqueId} +spec: + certificate: + valueFrom: + secretKeyRef: + key: certificate + name: secret-${uniqueId} + description: example compute SSL certificate + location: us-central1 + privateKey: + valueFrom: + secretKeyRef: + key: privateKey + name: secret-${uniqueId} + resourceID: computesslcertificate-${uniqueId} +status: + certificateId: 1111111111111111 + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + creationTimestamp: "1970-01-01T00:00:00Z" + observedGeneration: 2 + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesslcertificate/regionalcomputesslcertificate/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesslcertificate/regionalcomputesslcertificate/_http.log new file mode 100644 index 0000000000..186d3427d0 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesslcertificate/regionalcomputesslcertificate/_http.log @@ -0,0 +1,197 @@ +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "sslCertificate \"projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "sslCertificate \"projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "description": "example compute SSL certificate", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n", + "region": "projects/${projectId}/global/regions/us-central1" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "example compute SSL certificate", + "id": "000000000000000000000", + "kind": "compute#sslCertificate", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n", + "region": "projects/${projectId}/global/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesubnetwork/_generated_object_computesubnetwork.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesubnetwork/_generated_object_computesubnetwork.golden.yaml index ad82272bbd..ada97466bf 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesubnetwork/_generated_object_computesubnetwork.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computesubnetwork/_generated_object_computesubnetwork.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -19,11 +19,8 @@ spec: networkRef: name: computenetwork-${uniqueId} privateIpGoogleAccess: true - privateIpv6GoogleAccess: DISABLE_GOOGLE_ACCESS - purpose: PRIVATE region: us-central1 resourceID: computesubnetwork-${uniqueId} - stackType: IPV4_ONLY status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpproxy/globaltargethttpproxy/_generated_object_globaltargethttpproxy.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpproxy/globaltargethttpproxy/_generated_object_globaltargethttpproxy.golden.yaml index 6ba306188a..b6e40208e5 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpproxy/globaltargethttpproxy/_generated_object_globaltargethttpproxy.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpproxy/globaltargethttpproxy/_generated_object_globaltargethttpproxy.golden.yaml @@ -18,7 +18,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpproxy/regionaltargethttpproxy/_generated_object_regionaltargethttpproxy.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpproxy/regionaltargethttpproxy/_generated_object_regionaltargethttpproxy.golden.yaml index eb3911bdf7..8f8688fd0b 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpproxy/regionaltargethttpproxy/_generated_object_regionaltargethttpproxy.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpproxy/regionaltargethttpproxy/_generated_object_regionaltargethttpproxy.golden.yaml @@ -18,7 +18,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/crossregiontargethttpsproxy/_generated_object_crossregiontargethttpsproxy.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/crossregiontargethttpsproxy/_generated_object_crossregiontargethttpsproxy.golden.yaml new file mode 100644 index 0000000000..255dcd6b23 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/crossregiontargethttpsproxy/_generated_object_crossregiontargethttpsproxy.golden.yaml @@ -0,0 +1,35 @@ +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetHTTPSProxy +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/project-id: ${projectId} + cnrm.cloud.google.com/state-into-spec: absent + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 3 + labels: + cnrm-test: "true" + name: computetargethttpsproxy-${uniqueId} + namespace: ${uniqueId} +spec: + certificateManagerCertificates: + - name: certificatemanagercertificate-${uniqueId} + description: target https proxy with certificate manager certificate + location: global + quicOverride: ENABLE + resourceID: computetargethttpsproxy-${uniqueId} + urlMapRef: + name: computeurlmap-${uniqueId} +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + creationTimestamp: "1970-01-01T00:00:00Z" + observedGeneration: 3 + proxyId: 1111111111111111 + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/crossregiontargethttpsproxy/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/crossregiontargethttpsproxy/_http.log new file mode 100644 index 0000000000..a604520147 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/crossregiontargethttpsproxy/_http.log @@ -0,0 +1,911 @@ +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "loadBalancingScheme": "INTERNAL_MANAGED", + "name": "computebackendservice-${uniqueId}", + "portName": "http", + "protocol": "HTTP", + "timeoutSec": 10 +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "INTERNAL_MANAGED", + "name": "computebackendservice-${uniqueId}", + "portName": "http", + "protocol": "HTTP", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "timeoutSec": 10 +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificates/certificatemanagercertificate${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "message": "Resource 'projects/${projectId}/locations/global/certificates/certificatemanagercertificate${uniqueId}' was not found", + "status": "NOT_FOUND" + } +} + +--- + +POST https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificates?alt=json&certificateId=certificatemanagercertificate${uniqueId} +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "scope": "ALL_REGIONS", + "selfManaged": { + "pemCertificate": "-----BEGIN CERTIFICATE-----\nMIIDDzCCAfegAwIBAgIUDOiCLH9QNMMYnjPZVf4VwO9blsEwDQYJKoZIhvcNAQEL\nBQAwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wIBcNMjIwODI0MDg0MDUxWhgPMzAy\nMTEyMjUwODQwNTFaMBYxFDASBgNVBAMMC2V4YW1wbGUuY29tMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvOT925GG4lKV9HvAHsbecMhGPAqjhVRC26iZ\nUJC8oSWOu95lWJSX5ZhbiF6Nz192wDGV/VAh3Lxj8RYtcn75eDxQKTcKouDld+To\nCGIStPFWbR6rbysLuZqFVEXVOTvp2QIegInfrvnGC4j7Qpic7zrFB9HzJx+0HpeE\nyO4gkdzJfEK/gMmolUgJrKX59o+0+Rj+Jq3EtcQxL1fVBVJSx0NvpoR1eYpnHMr/\nrJKZkUUZ2xE86hrtpiP6OEYQTi00rmf4GnZF5QfGGD0xuoQXtR7Tu+XhKibXIhxc\nD4RzPLX1QS040PXvmMPLDb4YlUQ6V3Rs42JDvkkDwIMXZvn8awIDAQABo1MwUTAd\nBgNVHQ4EFgQURuo1CCZZAUv7xi02f2nC5tRbf18wHwYDVR0jBBgwFoAURuo1CCZZ\nAUv7xi02f2nC5tRbf18wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC\nAQEAqx3tDxurnYr9EUPhF5/LlDPYM+VI7EgrKdRnuIqUlZI0tm3vOGME0te6dBTC\nYLNaHLW3m/4Tm4M2eg0Kpz6CxJfn3109G31dCi0xwzSDHf5TPUWvqIVhq5WRgMIf\nn8KYBlQSmqdJBRztUIQH/UPFnSbxymlS4s5qwDgTH5ag9EEBcnWsQ2LZjKi0eqve\nMaqAvvB+j8RGZzYY4re94bSJI42zIZ6nMWPtXwRuDc30xl/u+E0jWIgWbPwSd6Km\n3wnJnGiU2ezPGq3zEU+Rc39VVIFKQpciNeYuF3neHPJvYOf58qW2Z8s0VH0MR1x3\n3DoO/e30FIr9j+PRD+s5BPKF2A==\n-----END CERTIFICATE-----", + "pemPrivateKey": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC85P3bkYbiUpX0\ne8Aext5wyEY8CqOFVELbqJlQkLyhJY673mVYlJflmFuIXo3PX3bAMZX9UCHcvGPx\nFi1yfvl4PFApNwqi4OV35OgIYhK08VZtHqtvKwu5moVURdU5O+nZAh6Aid+u+cYL\niPtCmJzvOsUH0fMnH7Qel4TI7iCR3Ml8Qr+AyaiVSAmspfn2j7T5GP4mrcS1xDEv\nV9UFUlLHQ2+mhHV5imccyv+skpmRRRnbETzqGu2mI/o4RhBOLTSuZ/gadkXlB8YY\nPTG6hBe1HtO75eEqJtciHFwPhHM8tfVBLTjQ9e+Yw8sNvhiVRDpXdGzjYkO+SQPA\ngxdm+fxrAgMBAAECggEAV4/A24TQpV4KFBw/WSTvnRFBeXinB1mhamhztWR6hCrA\nSPcVPKQY632eRI8sJmpGxl3V/Ogl4khT/cA9jfstEl7G++v/WrRsupCaPLSVnlnX\nKdsTNgOauk1WK9P5PMA4rPcuA4Cl91riQpubeWn8KWsxRWg90i+Ak8PB8lBsOaB1\nQzjigWlrRWSpodaw0MBIMZFDL2BYK8HEr+wyATYIyGvDQc9zCnMQIQIZyEPYepLO\n04Dw17YcjgnoJ5gLAFiTvDrCpTMewud1RQzvW5TAvG2piw34sf3QMGPM7aXNrfuZ\n4ZPC/MwVQgq9Nc+jeDsjApQmJKJ+3a8OdIPU89ArTQKBgQDCpHHQe1RzpHmIx47/\n9N5r+NPBhh8flDYmvgi6zPeBfrAaLWhidS8c7Voa6HwvMxbhryDEvc0YqI3vllfy\nxnRF+DfSryozW0gjrkXDGoOzqOJ3EuQwLSJnyX6La2lmufqsRFazwYJ5sxcjoGHK\n/sbwZkIUj1ejuH44ve+ZJQFfpwKBgQD4cLJrJhqImUDhHZRx9jBvxyeHy/RjmHK6\n70xQVDi9ZqeExHwtoSbolhXKLB1RtBnw+t5Csy7IDNBDsbUg9fXU8KyCTIdmsyws\nbDb5hdKsUF76rkKzlpttiXMRVWGS3CMKWahBpnL3lFB3tdtmskemkBTXVn4VgKAH\nxk9XnZ11nQKBgDbQSJ0FnkrSzscOK984/ko50Kh3NNyXyIgwjBTPFASLwNweXX8c\nsR/cV7usLQy9vnvf7cJ6EQAYt5/5Httnt+bceBwE6EV+N1qVAWBoXx6BOQV/dHN8\nwmun+tMYdJ5RUZ6hwCjvHedX3/RQfjnEdhHNOl6/31Zj5mfkVU0zdqeRAoGAcvIh\nerXMfPr7K6y16+xOCMmKHqhc0F/OZXMmSdxNzEPcqe8GzU3MZLxcJIg4oH7FqdtI\nTm/86w4Spd9owHFMZlNcXYTu+LNZcsw2u0gRayxcZXuO3OyHySxZEuIAHSTBCZ7l\n3EoY0zfJ6zk249MEl6n+GouoFmbGpBI6z3zbR3kCgYEAlCNZVH4uJrP5beTOZTTR\nVJRk7BXvEC6HsM140YtIN7NHy2GtzrgmmY/ZAFB/hX8Ft4ex2MxbIp3hvxroTqGn\nbfu7uv97NoPQqbjtc3Mz8h2IaXTVDUnWYY5gDu6rM2w+Z75/sWIGiTWrsdYX4ohb\nujngzJ7Ew7GgKSboj6mtlVM=\n-----END PRIVATE KEY-----\n" + } +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.OperationMetadata", + "apiVersion": "v1", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/global/certificates/certificatemanagercertificate${uniqueId}", + "verb": "create" + }, + "name": "projects/${projectId}/locations/global/operations/${operationID}" +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/operations/${operationID}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "done": true, + "metadata": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.OperationMetadata", + "apiVersion": "v1", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/global/certificates/certificatemanagercertificate${uniqueId}", + "verb": "create" + }, + "name": "projects/${projectId}/locations/global/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.Certificate", + "name": "projects/${projectId}/locations/global/certificates/certificatemanagercertificate${uniqueId}", + "scope": "ALL_REGIONS", + "selfManaged": { + "pemCertificate": "-----BEGIN CERTIFICATE-----\nMIIDDzCCAfegAwIBAgIUDOiCLH9QNMMYnjPZVf4VwO9blsEwDQYJKoZIhvcNAQEL\nBQAwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wIBcNMjIwODI0MDg0MDUxWhgPMzAy\nMTEyMjUwODQwNTFaMBYxFDASBgNVBAMMC2V4YW1wbGUuY29tMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvOT925GG4lKV9HvAHsbecMhGPAqjhVRC26iZ\nUJC8oSWOu95lWJSX5ZhbiF6Nz192wDGV/VAh3Lxj8RYtcn75eDxQKTcKouDld+To\nCGIStPFWbR6rbysLuZqFVEXVOTvp2QIegInfrvnGC4j7Qpic7zrFB9HzJx+0HpeE\nyO4gkdzJfEK/gMmolUgJrKX59o+0+Rj+Jq3EtcQxL1fVBVJSx0NvpoR1eYpnHMr/\nrJKZkUUZ2xE86hrtpiP6OEYQTi00rmf4GnZF5QfGGD0xuoQXtR7Tu+XhKibXIhxc\nD4RzPLX1QS040PXvmMPLDb4YlUQ6V3Rs42JDvkkDwIMXZvn8awIDAQABo1MwUTAd\nBgNVHQ4EFgQURuo1CCZZAUv7xi02f2nC5tRbf18wHwYDVR0jBBgwFoAURuo1CCZZ\nAUv7xi02f2nC5tRbf18wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC\nAQEAqx3tDxurnYr9EUPhF5/LlDPYM+VI7EgrKdRnuIqUlZI0tm3vOGME0te6dBTC\nYLNaHLW3m/4Tm4M2eg0Kpz6CxJfn3109G31dCi0xwzSDHf5TPUWvqIVhq5WRgMIf\nn8KYBlQSmqdJBRztUIQH/UPFnSbxymlS4s5qwDgTH5ag9EEBcnWsQ2LZjKi0eqve\nMaqAvvB+j8RGZzYY4re94bSJI42zIZ6nMWPtXwRuDc30xl/u+E0jWIgWbPwSd6Km\n3wnJnGiU2ezPGq3zEU+Rc39VVIFKQpciNeYuF3neHPJvYOf58qW2Z8s0VH0MR1x3\n3DoO/e30FIr9j+PRD+s5BPKF2A==\n-----END CERTIFICATE-----", + "pemPrivateKey": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC85P3bkYbiUpX0\ne8Aext5wyEY8CqOFVELbqJlQkLyhJY673mVYlJflmFuIXo3PX3bAMZX9UCHcvGPx\nFi1yfvl4PFApNwqi4OV35OgIYhK08VZtHqtvKwu5moVURdU5O+nZAh6Aid+u+cYL\niPtCmJzvOsUH0fMnH7Qel4TI7iCR3Ml8Qr+AyaiVSAmspfn2j7T5GP4mrcS1xDEv\nV9UFUlLHQ2+mhHV5imccyv+skpmRRRnbETzqGu2mI/o4RhBOLTSuZ/gadkXlB8YY\nPTG6hBe1HtO75eEqJtciHFwPhHM8tfVBLTjQ9e+Yw8sNvhiVRDpXdGzjYkO+SQPA\ngxdm+fxrAgMBAAECggEAV4/A24TQpV4KFBw/WSTvnRFBeXinB1mhamhztWR6hCrA\nSPcVPKQY632eRI8sJmpGxl3V/Ogl4khT/cA9jfstEl7G++v/WrRsupCaPLSVnlnX\nKdsTNgOauk1WK9P5PMA4rPcuA4Cl91riQpubeWn8KWsxRWg90i+Ak8PB8lBsOaB1\nQzjigWlrRWSpodaw0MBIMZFDL2BYK8HEr+wyATYIyGvDQc9zCnMQIQIZyEPYepLO\n04Dw17YcjgnoJ5gLAFiTvDrCpTMewud1RQzvW5TAvG2piw34sf3QMGPM7aXNrfuZ\n4ZPC/MwVQgq9Nc+jeDsjApQmJKJ+3a8OdIPU89ArTQKBgQDCpHHQe1RzpHmIx47/\n9N5r+NPBhh8flDYmvgi6zPeBfrAaLWhidS8c7Voa6HwvMxbhryDEvc0YqI3vllfy\nxnRF+DfSryozW0gjrkXDGoOzqOJ3EuQwLSJnyX6La2lmufqsRFazwYJ5sxcjoGHK\n/sbwZkIUj1ejuH44ve+ZJQFfpwKBgQD4cLJrJhqImUDhHZRx9jBvxyeHy/RjmHK6\n70xQVDi9ZqeExHwtoSbolhXKLB1RtBnw+t5Csy7IDNBDsbUg9fXU8KyCTIdmsyws\nbDb5hdKsUF76rkKzlpttiXMRVWGS3CMKWahBpnL3lFB3tdtmskemkBTXVn4VgKAH\nxk9XnZ11nQKBgDbQSJ0FnkrSzscOK984/ko50Kh3NNyXyIgwjBTPFASLwNweXX8c\nsR/cV7usLQy9vnvf7cJ6EQAYt5/5Httnt+bceBwE6EV+N1qVAWBoXx6BOQV/dHN8\nwmun+tMYdJ5RUZ6hwCjvHedX3/RQfjnEdhHNOl6/31Zj5mfkVU0zdqeRAoGAcvIh\nerXMfPr7K6y16+xOCMmKHqhc0F/OZXMmSdxNzEPcqe8GzU3MZLxcJIg4oH7FqdtI\nTm/86w4Spd9owHFMZlNcXYTu+LNZcsw2u0gRayxcZXuO3OyHySxZEuIAHSTBCZ7l\n3EoY0zfJ6zk249MEl6n+GouoFmbGpBI6z3zbR3kCgYEAlCNZVH4uJrP5beTOZTTR\nVJRk7BXvEC6HsM140YtIN7NHy2GtzrgmmY/ZAFB/hX8Ft4ex2MxbIp3hvxroTqGn\nbfu7uv97NoPQqbjtc3Mz8h2IaXTVDUnWYY5gDu6rM2w+Z75/sWIGiTWrsdYX4ohb\nujngzJ7Ew7GgKSboj6mtlVM=\n-----END PRIVATE KEY-----\n" + } + } +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificates/certificatemanagercertificate${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "projects/${projectId}/locations/global/certificates/certificatemanagercertificate${uniqueId}", + "scope": "ALL_REGIONS", + "selfManaged": { + "pemCertificate": "-----BEGIN CERTIFICATE-----\nMIIDDzCCAfegAwIBAgIUDOiCLH9QNMMYnjPZVf4VwO9blsEwDQYJKoZIhvcNAQEL\nBQAwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wIBcNMjIwODI0MDg0MDUxWhgPMzAy\nMTEyMjUwODQwNTFaMBYxFDASBgNVBAMMC2V4YW1wbGUuY29tMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvOT925GG4lKV9HvAHsbecMhGPAqjhVRC26iZ\nUJC8oSWOu95lWJSX5ZhbiF6Nz192wDGV/VAh3Lxj8RYtcn75eDxQKTcKouDld+To\nCGIStPFWbR6rbysLuZqFVEXVOTvp2QIegInfrvnGC4j7Qpic7zrFB9HzJx+0HpeE\nyO4gkdzJfEK/gMmolUgJrKX59o+0+Rj+Jq3EtcQxL1fVBVJSx0NvpoR1eYpnHMr/\nrJKZkUUZ2xE86hrtpiP6OEYQTi00rmf4GnZF5QfGGD0xuoQXtR7Tu+XhKibXIhxc\nD4RzPLX1QS040PXvmMPLDb4YlUQ6V3Rs42JDvkkDwIMXZvn8awIDAQABo1MwUTAd\nBgNVHQ4EFgQURuo1CCZZAUv7xi02f2nC5tRbf18wHwYDVR0jBBgwFoAURuo1CCZZ\nAUv7xi02f2nC5tRbf18wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC\nAQEAqx3tDxurnYr9EUPhF5/LlDPYM+VI7EgrKdRnuIqUlZI0tm3vOGME0te6dBTC\nYLNaHLW3m/4Tm4M2eg0Kpz6CxJfn3109G31dCi0xwzSDHf5TPUWvqIVhq5WRgMIf\nn8KYBlQSmqdJBRztUIQH/UPFnSbxymlS4s5qwDgTH5ag9EEBcnWsQ2LZjKi0eqve\nMaqAvvB+j8RGZzYY4re94bSJI42zIZ6nMWPtXwRuDc30xl/u+E0jWIgWbPwSd6Km\n3wnJnGiU2ezPGq3zEU+Rc39VVIFKQpciNeYuF3neHPJvYOf58qW2Z8s0VH0MR1x3\n3DoO/e30FIr9j+PRD+s5BPKF2A==\n-----END CERTIFICATE-----", + "pemPrivateKey": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC85P3bkYbiUpX0\ne8Aext5wyEY8CqOFVELbqJlQkLyhJY673mVYlJflmFuIXo3PX3bAMZX9UCHcvGPx\nFi1yfvl4PFApNwqi4OV35OgIYhK08VZtHqtvKwu5moVURdU5O+nZAh6Aid+u+cYL\niPtCmJzvOsUH0fMnH7Qel4TI7iCR3Ml8Qr+AyaiVSAmspfn2j7T5GP4mrcS1xDEv\nV9UFUlLHQ2+mhHV5imccyv+skpmRRRnbETzqGu2mI/o4RhBOLTSuZ/gadkXlB8YY\nPTG6hBe1HtO75eEqJtciHFwPhHM8tfVBLTjQ9e+Yw8sNvhiVRDpXdGzjYkO+SQPA\ngxdm+fxrAgMBAAECggEAV4/A24TQpV4KFBw/WSTvnRFBeXinB1mhamhztWR6hCrA\nSPcVPKQY632eRI8sJmpGxl3V/Ogl4khT/cA9jfstEl7G++v/WrRsupCaPLSVnlnX\nKdsTNgOauk1WK9P5PMA4rPcuA4Cl91riQpubeWn8KWsxRWg90i+Ak8PB8lBsOaB1\nQzjigWlrRWSpodaw0MBIMZFDL2BYK8HEr+wyATYIyGvDQc9zCnMQIQIZyEPYepLO\n04Dw17YcjgnoJ5gLAFiTvDrCpTMewud1RQzvW5TAvG2piw34sf3QMGPM7aXNrfuZ\n4ZPC/MwVQgq9Nc+jeDsjApQmJKJ+3a8OdIPU89ArTQKBgQDCpHHQe1RzpHmIx47/\n9N5r+NPBhh8flDYmvgi6zPeBfrAaLWhidS8c7Voa6HwvMxbhryDEvc0YqI3vllfy\nxnRF+DfSryozW0gjrkXDGoOzqOJ3EuQwLSJnyX6La2lmufqsRFazwYJ5sxcjoGHK\n/sbwZkIUj1ejuH44ve+ZJQFfpwKBgQD4cLJrJhqImUDhHZRx9jBvxyeHy/RjmHK6\n70xQVDi9ZqeExHwtoSbolhXKLB1RtBnw+t5Csy7IDNBDsbUg9fXU8KyCTIdmsyws\nbDb5hdKsUF76rkKzlpttiXMRVWGS3CMKWahBpnL3lFB3tdtmskemkBTXVn4VgKAH\nxk9XnZ11nQKBgDbQSJ0FnkrSzscOK984/ko50Kh3NNyXyIgwjBTPFASLwNweXX8c\nsR/cV7usLQy9vnvf7cJ6EQAYt5/5Httnt+bceBwE6EV+N1qVAWBoXx6BOQV/dHN8\nwmun+tMYdJ5RUZ6hwCjvHedX3/RQfjnEdhHNOl6/31Zj5mfkVU0zdqeRAoGAcvIh\nerXMfPr7K6y16+xOCMmKHqhc0F/OZXMmSdxNzEPcqe8GzU3MZLxcJIg4oH7FqdtI\nTm/86w4Spd9owHFMZlNcXYTu+LNZcsw2u0gRayxcZXuO3OyHySxZEuIAHSTBCZ7l\n3EoY0zfJ6zk249MEl6n+GouoFmbGpBI6z3zbR3kCgYEAlCNZVH4uJrP5beTOZTTR\nVJRk7BXvEC6HsM140YtIN7NHy2GtzrgmmY/ZAFB/hX8Ft4ex2MxbIp3hvxroTqGn\nbfu7uv97NoPQqbjtc3Mz8h2IaXTVDUnWYY5gDu6rM2w+Z75/sWIGiTWrsdYX4ohb\nujngzJ7Ew7GgKSboj6mtlVM=\n-----END PRIVATE KEY-----\n" + } +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "description": "test global URLMap", + "hostRules": [ + { + "hosts": [ + "mysite.com" + ], + "pathMatcher": "allpaths" + } + ], + "name": "computeurlmap-${uniqueId}", + "pathMatchers": [ + { + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "name": "allpaths", + "pathRules": [ + { + "paths": [ + "/*" + ], + "service": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" + } + ] + } + ] +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "description": "test global URLMap", + "hostRules": [ + { + "hosts": [ + "mysite.com" + ], + "pathMatcher": "allpaths" + } + ], + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-${uniqueId}", + "pathMatchers": [ + { + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "name": "allpaths", + "pathRules": [ + { + "paths": [ + "/*" + ], + "service": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" + } + ] + } + ], + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "targetHttpsProxy \"projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "targetHttpsProxy \"projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "target https proxy with certificate manager certificate", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "DISABLE", + "sslCertificates": [ + "https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificates/certificatemanagercertificate${uniqueId}" + ], + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "target https proxy with certificate manager certificate", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#targetHttpsProxy", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "DISABLE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "sslCertificates": [ + "//certificatemanager.googleapis.com/projects/${projectId}/locations/global/certificates/certificatemanagercertificate${uniqueId}" + ], + "urlMap": "https://www.googleapis.com/compute/beta/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}/setQuicOverride?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "quicOverride": "ENABLE" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "compute.targetHttpsProxies.setQuicOverride", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "compute.targetHttpsProxies.setQuicOverride", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "target https proxy with certificate manager certificate", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#targetHttpsProxy", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "ENABLE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "sslCertificates": [ + "//certificatemanager.googleapis.com/projects/${projectId}/locations/global/certificates/certificatemanagercertificate${uniqueId}" + ], + "urlMap": "https://www.googleapis.com/compute/beta/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "description": "test global URLMap", + "hostRules": [ + { + "hosts": [ + "mysite.com" + ], + "pathMatcher": "allpaths" + } + ], + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-${uniqueId}", + "pathMatchers": [ + { + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "name": "allpaths", + "pathRules": [ + { + "paths": [ + "/*" + ], + "service": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" + } + ] + } + ], + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificates/certificatemanagercertificate${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "projects/${projectId}/locations/global/certificates/certificatemanagercertificate${uniqueId}", + "scope": "ALL_REGIONS", + "selfManaged": { + "pemCertificate": "-----BEGIN CERTIFICATE-----\nMIIDDzCCAfegAwIBAgIUDOiCLH9QNMMYnjPZVf4VwO9blsEwDQYJKoZIhvcNAQEL\nBQAwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wIBcNMjIwODI0MDg0MDUxWhgPMzAy\nMTEyMjUwODQwNTFaMBYxFDASBgNVBAMMC2V4YW1wbGUuY29tMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvOT925GG4lKV9HvAHsbecMhGPAqjhVRC26iZ\nUJC8oSWOu95lWJSX5ZhbiF6Nz192wDGV/VAh3Lxj8RYtcn75eDxQKTcKouDld+To\nCGIStPFWbR6rbysLuZqFVEXVOTvp2QIegInfrvnGC4j7Qpic7zrFB9HzJx+0HpeE\nyO4gkdzJfEK/gMmolUgJrKX59o+0+Rj+Jq3EtcQxL1fVBVJSx0NvpoR1eYpnHMr/\nrJKZkUUZ2xE86hrtpiP6OEYQTi00rmf4GnZF5QfGGD0xuoQXtR7Tu+XhKibXIhxc\nD4RzPLX1QS040PXvmMPLDb4YlUQ6V3Rs42JDvkkDwIMXZvn8awIDAQABo1MwUTAd\nBgNVHQ4EFgQURuo1CCZZAUv7xi02f2nC5tRbf18wHwYDVR0jBBgwFoAURuo1CCZZ\nAUv7xi02f2nC5tRbf18wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC\nAQEAqx3tDxurnYr9EUPhF5/LlDPYM+VI7EgrKdRnuIqUlZI0tm3vOGME0te6dBTC\nYLNaHLW3m/4Tm4M2eg0Kpz6CxJfn3109G31dCi0xwzSDHf5TPUWvqIVhq5WRgMIf\nn8KYBlQSmqdJBRztUIQH/UPFnSbxymlS4s5qwDgTH5ag9EEBcnWsQ2LZjKi0eqve\nMaqAvvB+j8RGZzYY4re94bSJI42zIZ6nMWPtXwRuDc30xl/u+E0jWIgWbPwSd6Km\n3wnJnGiU2ezPGq3zEU+Rc39VVIFKQpciNeYuF3neHPJvYOf58qW2Z8s0VH0MR1x3\n3DoO/e30FIr9j+PRD+s5BPKF2A==\n-----END CERTIFICATE-----", + "pemPrivateKey": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC85P3bkYbiUpX0\ne8Aext5wyEY8CqOFVELbqJlQkLyhJY673mVYlJflmFuIXo3PX3bAMZX9UCHcvGPx\nFi1yfvl4PFApNwqi4OV35OgIYhK08VZtHqtvKwu5moVURdU5O+nZAh6Aid+u+cYL\niPtCmJzvOsUH0fMnH7Qel4TI7iCR3Ml8Qr+AyaiVSAmspfn2j7T5GP4mrcS1xDEv\nV9UFUlLHQ2+mhHV5imccyv+skpmRRRnbETzqGu2mI/o4RhBOLTSuZ/gadkXlB8YY\nPTG6hBe1HtO75eEqJtciHFwPhHM8tfVBLTjQ9e+Yw8sNvhiVRDpXdGzjYkO+SQPA\ngxdm+fxrAgMBAAECggEAV4/A24TQpV4KFBw/WSTvnRFBeXinB1mhamhztWR6hCrA\nSPcVPKQY632eRI8sJmpGxl3V/Ogl4khT/cA9jfstEl7G++v/WrRsupCaPLSVnlnX\nKdsTNgOauk1WK9P5PMA4rPcuA4Cl91riQpubeWn8KWsxRWg90i+Ak8PB8lBsOaB1\nQzjigWlrRWSpodaw0MBIMZFDL2BYK8HEr+wyATYIyGvDQc9zCnMQIQIZyEPYepLO\n04Dw17YcjgnoJ5gLAFiTvDrCpTMewud1RQzvW5TAvG2piw34sf3QMGPM7aXNrfuZ\n4ZPC/MwVQgq9Nc+jeDsjApQmJKJ+3a8OdIPU89ArTQKBgQDCpHHQe1RzpHmIx47/\n9N5r+NPBhh8flDYmvgi6zPeBfrAaLWhidS8c7Voa6HwvMxbhryDEvc0YqI3vllfy\nxnRF+DfSryozW0gjrkXDGoOzqOJ3EuQwLSJnyX6La2lmufqsRFazwYJ5sxcjoGHK\n/sbwZkIUj1ejuH44ve+ZJQFfpwKBgQD4cLJrJhqImUDhHZRx9jBvxyeHy/RjmHK6\n70xQVDi9ZqeExHwtoSbolhXKLB1RtBnw+t5Csy7IDNBDsbUg9fXU8KyCTIdmsyws\nbDb5hdKsUF76rkKzlpttiXMRVWGS3CMKWahBpnL3lFB3tdtmskemkBTXVn4VgKAH\nxk9XnZ11nQKBgDbQSJ0FnkrSzscOK984/ko50Kh3NNyXyIgwjBTPFASLwNweXX8c\nsR/cV7usLQy9vnvf7cJ6EQAYt5/5Httnt+bceBwE6EV+N1qVAWBoXx6BOQV/dHN8\nwmun+tMYdJ5RUZ6hwCjvHedX3/RQfjnEdhHNOl6/31Zj5mfkVU0zdqeRAoGAcvIh\nerXMfPr7K6y16+xOCMmKHqhc0F/OZXMmSdxNzEPcqe8GzU3MZLxcJIg4oH7FqdtI\nTm/86w4Spd9owHFMZlNcXYTu+LNZcsw2u0gRayxcZXuO3OyHySxZEuIAHSTBCZ7l\n3EoY0zfJ6zk249MEl6n+GouoFmbGpBI6z3zbR3kCgYEAlCNZVH4uJrP5beTOZTTR\nVJRk7BXvEC6HsM140YtIN7NHy2GtzrgmmY/ZAFB/hX8Ft4ex2MxbIp3hvxroTqGn\nbfu7uv97NoPQqbjtc3Mz8h2IaXTVDUnWYY5gDu6rM2w+Z75/sWIGiTWrsdYX4ohb\nujngzJ7Ew7GgKSboj6mtlVM=\n-----END PRIVATE KEY-----\n" + } +} + +--- + +DELETE https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificates/certificatemanagercertificate${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.OperationMetadata", + "apiVersion": "v1", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/global/certificates/certificatemanagercertificate${uniqueId}", + "verb": "delete" + }, + "name": "projects/${projectId}/locations/global/operations/${operationID}" +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/operations/${operationID}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "done": true, + "metadata": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.OperationMetadata", + "apiVersion": "v1", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/global/certificates/certificatemanagercertificate${uniqueId}", + "verb": "delete" + }, + "name": "projects/${projectId}/locations/global/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.protobuf.Empty" + } +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "INTERNAL_MANAGED", + "name": "computebackendservice-${uniqueId}", + "portName": "http", + "protocol": "HTTP", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "timeoutSec": 10 +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/_generated_object_globaltargethttpsproxy-certmap.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/_generated_object_globaltargethttpsproxy-certmap.golden.yaml new file mode 100644 index 0000000000..967e5b5759 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/_generated_object_globaltargethttpsproxy-certmap.golden.yaml @@ -0,0 +1,35 @@ +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetHTTPSProxy +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/project-id: ${projectId} + cnrm.cloud.google.com/state-into-spec: absent + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 3 + labels: + cnrm-test: "true" + name: computetargethttpsproxy-${uniqueId} + namespace: ${uniqueId} +spec: + certificateMapRef: + name: certificatemanagercertificatemap-${uniqueId} + description: test description + location: global + quicOverride: ENABLE + resourceID: computetargethttpsproxy-${uniqueId} + urlMapRef: + name: computeurlmap-2-${uniqueId} +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + creationTimestamp: "1970-01-01T00:00:00Z" + observedGeneration: 3 + proxyId: 1111111111111111 + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/_http.log new file mode 100644 index 0000000000..ebb3fd9a52 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/_http.log @@ -0,0 +1,1214 @@ +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "checkIntervalSec": 10, + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "name": "computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "name": "computeurlmap-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "name": "computeurlmap-2-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-2-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificateMaps/certificatemanagercertificatemap${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "message": "Resource 'projects/${projectId}/locations/global/certificateMaps/certificatemanagercertificatemap${uniqueId}' was not found", + "status": "NOT_FOUND" + } +} + +--- + +POST https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificateMaps?alt=json&certificateMapId=certificatemanagercertificatemap${uniqueId} +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "sample certificate map", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true", + "value": "cert-map" + } +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.OperationMetadata", + "apiVersion": "v1", + "createTime": "2024-04-01T12:34:56.123456Z", + "endTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/global/certificateMaps/certificatemanagercertificatemap${uniqueId}", + "verb": "create" + }, + "name": "projects/${projectId}/locations/global/operations/${operationID}" +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/operations/${operationID}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "done": true, + "metadata": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.OperationMetadata", + "apiVersion": "v1", + "createTime": "2024-04-01T12:34:56.123456Z", + "endTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/global/certificateMaps/certificatemanagercertificatemap${uniqueId}", + "verb": "create" + }, + "name": "projects/${projectId}/locations/global/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.CertificateMap", + "createTime": "2024-04-01T12:34:56.123456Z", + "description": "sample certificate map", + "name": "projects/${projectId}/locations/global/certificateMaps/certificatemanagercertificatemap${uniqueId}", + "updateTime": "2024-04-01T12:34:56.123456Z" + } +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificateMaps/certificatemanagercertificatemap${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "description": "sample certificate map", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true", + "value": "cert-map" + }, + "name": "projects/${projectId}/locations/global/certificateMaps/certificatemanagercertificatemap${uniqueId}", + "updateTime": "2024-04-01T12:34:56.123456Z" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "targetHttpsProxy \"projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "targetHttpsProxy \"projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "certificateMap": "//certificatemanager.googleapis.com/projects/${projectId}/locations/global/certificateMaps/certificatemanagercertificatemap${uniqueId}", + "description": "test description", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "DISABLE", + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificateMap": "//certificatemanager.googleapis.com/projects/${projectId}/locations/global/certificateMaps/certificatemanagercertificatemap${uniqueId}", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#targetHttpsProxy", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "DISABLE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "urlMap": "https://www.googleapis.com/compute/beta/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}/setQuicOverride?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "quicOverride": "ENABLE" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "compute.targetHttpsProxies.setQuicOverride", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "compute.targetHttpsProxies.setQuicOverride", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/targetHttpsProxies/computetargethttpsproxy-${uniqueId}/setUrlMap?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetUrlMap", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetUrlMap", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificateMap": "//certificatemanager.googleapis.com/projects/${projectId}/locations/global/certificateMaps/certificatemanagercertificatemap${uniqueId}", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#targetHttpsProxy", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "ENABLE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "urlMap": "https://www.googleapis.com/compute/beta/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificateMaps/certificatemanagercertificatemap${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "description": "sample certificate map", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true", + "value": "cert-map" + }, + "name": "projects/${projectId}/locations/global/certificateMaps/certificatemanagercertificatemap${uniqueId}", + "updateTime": "2024-04-01T12:34:56.123456Z" +} + +--- + +DELETE https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificateMaps/certificatemanagercertificatemap${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.OperationMetadata", + "apiVersion": "v1", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/global/certificateMaps/certificatemanagercertificatemap${uniqueId}", + "verb": "delete" + }, + "name": "projects/${projectId}/locations/global/operations/${operationID}" +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/operations/${operationID}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "done": true, + "metadata": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.OperationMetadata", + "apiVersion": "v1", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/global/certificateMaps/certificatemanagercertificatemap${uniqueId}", + "verb": "delete" + }, + "name": "projects/${projectId}/locations/global/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.protobuf.Empty" + } +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-2-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/create.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/create.yaml new file mode 100644 index 0000000000..0b1c80793d --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/create.yaml @@ -0,0 +1,26 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetHTTPSProxy +metadata: + name: computetargethttpsproxy-${uniqueId} +spec: + description: "test description" + urlMapRef: + name: computeurlmap-${uniqueId} + certificateMapRef: + name: certificatemanagercertificatemap-${uniqueId} + quicOverride: DISABLE + location: global diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/dependencies.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/dependencies.yaml new file mode 100644 index 0000000000..0351a5d847 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/dependencies.yaml @@ -0,0 +1,65 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeHealthCheck +metadata: + name: computehealthcheck-${uniqueId} +spec: + checkIntervalSec: 10 + httpHealthCheck: + port: 80 + location: global +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeBackendService +metadata: + name: computebackendservice-${uniqueId} +spec: + healthChecks: + - healthCheckRef: + name: computehealthcheck-${uniqueId} + location: global +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeURLMap +metadata: + name: computeurlmap-${uniqueId} +spec: + defaultService: + backendServiceRef: + name: computebackendservice-${uniqueId} + location: global +--- +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeURLMap +metadata: + name: computeurlmap-2-${uniqueId} +spec: + defaultService: + backendServiceRef: + name: computebackendservice-${uniqueId} + location: global +--- +apiVersion: certificatemanager.cnrm.cloud.google.com/v1beta1 +kind: CertificateManagerCertificateMap +metadata: + labels: + value: cert-map + name: certificatemanagercertificatemap-${uniqueId} +spec: + description: sample certificate map + projectRef: + external: ${projectId} + resourceID: certificatemanagercertificatemap${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/update.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/update.yaml new file mode 100644 index 0000000000..013f30e85e --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy-certmap/update.yaml @@ -0,0 +1,26 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetHTTPSProxy +metadata: + name: computetargethttpsproxy-${uniqueId} +spec: + description: "test description" + urlMapRef: + name: computeurlmap-2-${uniqueId} + certificateMapRef: + name: certificatemanagercertificatemap-${uniqueId} + quicOverride: ENABLE + location: global diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy/_generated_object_globaltargethttpsproxy.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy/_generated_object_globaltargethttpsproxy.golden.yaml new file mode 100644 index 0000000000..489565b9fe --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy/_generated_object_globaltargethttpsproxy.golden.yaml @@ -0,0 +1,35 @@ +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetHTTPSProxy +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/project-id: ${projectId} + cnrm.cloud.google.com/state-into-spec: absent + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 3 + labels: + cnrm-test: "true" + name: computetargethttpsproxy-${uniqueId} + namespace: ${uniqueId} +spec: + description: test description + location: global + quicOverride: ENABLE + resourceID: computetargethttpsproxy-${uniqueId} + sslCertificates: + - name: computesslcertificate-${uniqueId} + urlMapRef: + name: computeurlmap-2-${uniqueId} +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + creationTimestamp: "1970-01-01T00:00:00Z" + observedGeneration: 3 + proxyId: 1111111111111111 + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy/_http.log new file mode 100644 index 0000000000..b3de2aa1c5 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxy/_http.log @@ -0,0 +1,1221 @@ +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "checkIntervalSec": 10, + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "name": "computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "name": "computeurlmap-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "name": "computeurlmap-2-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-2-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "sslCertificate \"projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "sslCertificate \"projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "kind": "compute#sslCertificate", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "targetHttpsProxy \"projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "targetHttpsProxy \"projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "test description", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "DISABLE", + "sslCertificates": [ + "projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ], + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#targetHttpsProxy", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "DISABLE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "sslCertificates": [ + "https://www.googleapis.com/compute/beta/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ], + "urlMap": "https://www.googleapis.com/compute/beta/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}/setQuicOverride?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "quicOverride": "ENABLE" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "compute.targetHttpsProxies.setQuicOverride", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "compute.targetHttpsProxies.setQuicOverride", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/targetHttpsProxies/computetargethttpsproxy-${uniqueId}/setUrlMap?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetUrlMap", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetUrlMap", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#targetHttpsProxy", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "ENABLE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "sslCertificates": [ + "https://www.googleapis.com/compute/beta/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ], + "urlMap": "https://www.googleapis.com/compute/beta/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "kind": "compute#sslCertificate", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-2-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxycertificatemanagercertificates/_generated_object_globaltargethttpsproxycertificatemanagercertificates.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxycertificatemanagercertificates/_generated_object_globaltargethttpsproxycertificatemanagercertificates.golden.yaml new file mode 100644 index 0000000000..b0ddff31fa --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxycertificatemanagercertificates/_generated_object_globaltargethttpsproxycertificatemanagercertificates.golden.yaml @@ -0,0 +1,35 @@ +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetHTTPSProxy +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/project-id: ${projectId} + cnrm.cloud.google.com/state-into-spec: absent + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 3 + labels: + cnrm-test: "true" + name: computetargethttpsproxy-${uniqueId} + namespace: ${uniqueId} +spec: + certificateManagerCertificates: + - name: certificatemanagercertificates-${uniqueId} + description: test description + location: global + quicOverride: ENABLE + resourceID: computetargethttpsproxy-${uniqueId} + urlMapRef: + name: computeurlmap-2-${uniqueId} +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + creationTimestamp: "1970-01-01T00:00:00Z" + observedGeneration: 3 + proxyId: 1111111111111111 + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxycertificatemanagercertificates/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxycertificatemanagercertificates/_http.log new file mode 100644 index 0000000000..635a5750b5 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxycertificatemanagercertificates/_http.log @@ -0,0 +1,1229 @@ +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "checkIntervalSec": 10, + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "name": "computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "loadBalancingScheme": "INTERNAL_MANAGED", + "name": "computebackendservice-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "INTERNAL_MANAGED", + "name": "computebackendservice-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "name": "computeurlmap-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "name": "computeurlmap-2-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-2-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificates/certificatemanagercertificates-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "message": "Resource 'projects/${projectId}/locations/global/certificates/certificatemanagercertificates-${uniqueId}' was not found", + "status": "NOT_FOUND" + } +} + +--- + +POST https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificates?alt=json&certificateId=certificatemanagercertificates-${uniqueId} +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "ALL_REGIONS scoped self-managed certificate", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "scope": "ALL_REGIONS", + "selfManaged": { + "pemCertificate": "-----BEGIN CERTIFICATE-----\nMIIDDzCCAfegAwIBAgIUDOiCLH9QNMMYnjPZVf4VwO9blsEwDQYJKoZIhvcNAQEL\nBQAwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wIBcNMjIwODI0MDg0MDUxWhgPMzAy\nMTEyMjUwODQwNTFaMBYxFDASBgNVBAMMC2V4YW1wbGUuY29tMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvOT925GG4lKV9HvAHsbecMhGPAqjhVRC26iZ\nUJC8oSWOu95lWJSX5ZhbiF6Nz192wDGV/VAh3Lxj8RYtcn75eDxQKTcKouDld+To\nCGIStPFWbR6rbysLuZqFVEXVOTvp2QIegInfrvnGC4j7Qpic7zrFB9HzJx+0HpeE\nyO4gkdzJfEK/gMmolUgJrKX59o+0+Rj+Jq3EtcQxL1fVBVJSx0NvpoR1eYpnHMr/\nrJKZkUUZ2xE86hrtpiP6OEYQTi00rmf4GnZF5QfGGD0xuoQXtR7Tu+XhKibXIhxc\nD4RzPLX1QS040PXvmMPLDb4YlUQ6V3Rs42JDvkkDwIMXZvn8awIDAQABo1MwUTAd\nBgNVHQ4EFgQURuo1CCZZAUv7xi02f2nC5tRbf18wHwYDVR0jBBgwFoAURuo1CCZZ\nAUv7xi02f2nC5tRbf18wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC\nAQEAqx3tDxurnYr9EUPhF5/LlDPYM+VI7EgrKdRnuIqUlZI0tm3vOGME0te6dBTC\nYLNaHLW3m/4Tm4M2eg0Kpz6CxJfn3109G31dCi0xwzSDHf5TPUWvqIVhq5WRgMIf\nn8KYBlQSmqdJBRztUIQH/UPFnSbxymlS4s5qwDgTH5ag9EEBcnWsQ2LZjKi0eqve\nMaqAvvB+j8RGZzYY4re94bSJI42zIZ6nMWPtXwRuDc30xl/u+E0jWIgWbPwSd6Km\n3wnJnGiU2ezPGq3zEU+Rc39VVIFKQpciNeYuF3neHPJvYOf58qW2Z8s0VH0MR1x3\n3DoO/e30FIr9j+PRD+s5BPKF2A==\n-----END CERTIFICATE-----", + "pemPrivateKey": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC85P3bkYbiUpX0\ne8Aext5wyEY8CqOFVELbqJlQkLyhJY673mVYlJflmFuIXo3PX3bAMZX9UCHcvGPx\nFi1yfvl4PFApNwqi4OV35OgIYhK08VZtHqtvKwu5moVURdU5O+nZAh6Aid+u+cYL\niPtCmJzvOsUH0fMnH7Qel4TI7iCR3Ml8Qr+AyaiVSAmspfn2j7T5GP4mrcS1xDEv\nV9UFUlLHQ2+mhHV5imccyv+skpmRRRnbETzqGu2mI/o4RhBOLTSuZ/gadkXlB8YY\nPTG6hBe1HtO75eEqJtciHFwPhHM8tfVBLTjQ9e+Yw8sNvhiVRDpXdGzjYkO+SQPA\ngxdm+fxrAgMBAAECggEAV4/A24TQpV4KFBw/WSTvnRFBeXinB1mhamhztWR6hCrA\nSPcVPKQY632eRI8sJmpGxl3V/Ogl4khT/cA9jfstEl7G++v/WrRsupCaPLSVnlnX\nKdsTNgOauk1WK9P5PMA4rPcuA4Cl91riQpubeWn8KWsxRWg90i+Ak8PB8lBsOaB1\nQzjigWlrRWSpodaw0MBIMZFDL2BYK8HEr+wyATYIyGvDQc9zCnMQIQIZyEPYepLO\n04Dw17YcjgnoJ5gLAFiTvDrCpTMewud1RQzvW5TAvG2piw34sf3QMGPM7aXNrfuZ\n4ZPC/MwVQgq9Nc+jeDsjApQmJKJ+3a8OdIPU89ArTQKBgQDCpHHQe1RzpHmIx47/\n9N5r+NPBhh8flDYmvgi6zPeBfrAaLWhidS8c7Voa6HwvMxbhryDEvc0YqI3vllfy\nxnRF+DfSryozW0gjrkXDGoOzqOJ3EuQwLSJnyX6La2lmufqsRFazwYJ5sxcjoGHK\n/sbwZkIUj1ejuH44ve+ZJQFfpwKBgQD4cLJrJhqImUDhHZRx9jBvxyeHy/RjmHK6\n70xQVDi9ZqeExHwtoSbolhXKLB1RtBnw+t5Csy7IDNBDsbUg9fXU8KyCTIdmsyws\nbDb5hdKsUF76rkKzlpttiXMRVWGS3CMKWahBpnL3lFB3tdtmskemkBTXVn4VgKAH\nxk9XnZ11nQKBgDbQSJ0FnkrSzscOK984/ko50Kh3NNyXyIgwjBTPFASLwNweXX8c\nsR/cV7usLQy9vnvf7cJ6EQAYt5/5Httnt+bceBwE6EV+N1qVAWBoXx6BOQV/dHN8\nwmun+tMYdJ5RUZ6hwCjvHedX3/RQfjnEdhHNOl6/31Zj5mfkVU0zdqeRAoGAcvIh\nerXMfPr7K6y16+xOCMmKHqhc0F/OZXMmSdxNzEPcqe8GzU3MZLxcJIg4oH7FqdtI\nTm/86w4Spd9owHFMZlNcXYTu+LNZcsw2u0gRayxcZXuO3OyHySxZEuIAHSTBCZ7l\n3EoY0zfJ6zk249MEl6n+GouoFmbGpBI6z3zbR3kCgYEAlCNZVH4uJrP5beTOZTTR\nVJRk7BXvEC6HsM140YtIN7NHy2GtzrgmmY/ZAFB/hX8Ft4ex2MxbIp3hvxroTqGn\nbfu7uv97NoPQqbjtc3Mz8h2IaXTVDUnWYY5gDu6rM2w+Z75/sWIGiTWrsdYX4ohb\nujngzJ7Ew7GgKSboj6mtlVM=\n-----END PRIVATE KEY-----\n" + } +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.OperationMetadata", + "apiVersion": "v1", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/global/certificates/certificatemanagercertificates-${uniqueId}", + "verb": "create" + }, + "name": "projects/${projectId}/locations/global/operations/${operationID}" +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/operations/${operationID}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "done": true, + "metadata": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.OperationMetadata", + "apiVersion": "v1", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/global/certificates/certificatemanagercertificates-${uniqueId}", + "verb": "create" + }, + "name": "projects/${projectId}/locations/global/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.Certificate", + "description": "ALL_REGIONS scoped self-managed certificate", + "name": "projects/${projectId}/locations/global/certificates/certificatemanagercertificates-${uniqueId}", + "scope": "ALL_REGIONS", + "selfManaged": { + "pemCertificate": "-----BEGIN CERTIFICATE-----\nMIIDDzCCAfegAwIBAgIUDOiCLH9QNMMYnjPZVf4VwO9blsEwDQYJKoZIhvcNAQEL\nBQAwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wIBcNMjIwODI0MDg0MDUxWhgPMzAy\nMTEyMjUwODQwNTFaMBYxFDASBgNVBAMMC2V4YW1wbGUuY29tMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvOT925GG4lKV9HvAHsbecMhGPAqjhVRC26iZ\nUJC8oSWOu95lWJSX5ZhbiF6Nz192wDGV/VAh3Lxj8RYtcn75eDxQKTcKouDld+To\nCGIStPFWbR6rbysLuZqFVEXVOTvp2QIegInfrvnGC4j7Qpic7zrFB9HzJx+0HpeE\nyO4gkdzJfEK/gMmolUgJrKX59o+0+Rj+Jq3EtcQxL1fVBVJSx0NvpoR1eYpnHMr/\nrJKZkUUZ2xE86hrtpiP6OEYQTi00rmf4GnZF5QfGGD0xuoQXtR7Tu+XhKibXIhxc\nD4RzPLX1QS040PXvmMPLDb4YlUQ6V3Rs42JDvkkDwIMXZvn8awIDAQABo1MwUTAd\nBgNVHQ4EFgQURuo1CCZZAUv7xi02f2nC5tRbf18wHwYDVR0jBBgwFoAURuo1CCZZ\nAUv7xi02f2nC5tRbf18wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC\nAQEAqx3tDxurnYr9EUPhF5/LlDPYM+VI7EgrKdRnuIqUlZI0tm3vOGME0te6dBTC\nYLNaHLW3m/4Tm4M2eg0Kpz6CxJfn3109G31dCi0xwzSDHf5TPUWvqIVhq5WRgMIf\nn8KYBlQSmqdJBRztUIQH/UPFnSbxymlS4s5qwDgTH5ag9EEBcnWsQ2LZjKi0eqve\nMaqAvvB+j8RGZzYY4re94bSJI42zIZ6nMWPtXwRuDc30xl/u+E0jWIgWbPwSd6Km\n3wnJnGiU2ezPGq3zEU+Rc39VVIFKQpciNeYuF3neHPJvYOf58qW2Z8s0VH0MR1x3\n3DoO/e30FIr9j+PRD+s5BPKF2A==\n-----END CERTIFICATE-----", + "pemPrivateKey": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC85P3bkYbiUpX0\ne8Aext5wyEY8CqOFVELbqJlQkLyhJY673mVYlJflmFuIXo3PX3bAMZX9UCHcvGPx\nFi1yfvl4PFApNwqi4OV35OgIYhK08VZtHqtvKwu5moVURdU5O+nZAh6Aid+u+cYL\niPtCmJzvOsUH0fMnH7Qel4TI7iCR3Ml8Qr+AyaiVSAmspfn2j7T5GP4mrcS1xDEv\nV9UFUlLHQ2+mhHV5imccyv+skpmRRRnbETzqGu2mI/o4RhBOLTSuZ/gadkXlB8YY\nPTG6hBe1HtO75eEqJtciHFwPhHM8tfVBLTjQ9e+Yw8sNvhiVRDpXdGzjYkO+SQPA\ngxdm+fxrAgMBAAECggEAV4/A24TQpV4KFBw/WSTvnRFBeXinB1mhamhztWR6hCrA\nSPcVPKQY632eRI8sJmpGxl3V/Ogl4khT/cA9jfstEl7G++v/WrRsupCaPLSVnlnX\nKdsTNgOauk1WK9P5PMA4rPcuA4Cl91riQpubeWn8KWsxRWg90i+Ak8PB8lBsOaB1\nQzjigWlrRWSpodaw0MBIMZFDL2BYK8HEr+wyATYIyGvDQc9zCnMQIQIZyEPYepLO\n04Dw17YcjgnoJ5gLAFiTvDrCpTMewud1RQzvW5TAvG2piw34sf3QMGPM7aXNrfuZ\n4ZPC/MwVQgq9Nc+jeDsjApQmJKJ+3a8OdIPU89ArTQKBgQDCpHHQe1RzpHmIx47/\n9N5r+NPBhh8flDYmvgi6zPeBfrAaLWhidS8c7Voa6HwvMxbhryDEvc0YqI3vllfy\nxnRF+DfSryozW0gjrkXDGoOzqOJ3EuQwLSJnyX6La2lmufqsRFazwYJ5sxcjoGHK\n/sbwZkIUj1ejuH44ve+ZJQFfpwKBgQD4cLJrJhqImUDhHZRx9jBvxyeHy/RjmHK6\n70xQVDi9ZqeExHwtoSbolhXKLB1RtBnw+t5Csy7IDNBDsbUg9fXU8KyCTIdmsyws\nbDb5hdKsUF76rkKzlpttiXMRVWGS3CMKWahBpnL3lFB3tdtmskemkBTXVn4VgKAH\nxk9XnZ11nQKBgDbQSJ0FnkrSzscOK984/ko50Kh3NNyXyIgwjBTPFASLwNweXX8c\nsR/cV7usLQy9vnvf7cJ6EQAYt5/5Httnt+bceBwE6EV+N1qVAWBoXx6BOQV/dHN8\nwmun+tMYdJ5RUZ6hwCjvHedX3/RQfjnEdhHNOl6/31Zj5mfkVU0zdqeRAoGAcvIh\nerXMfPr7K6y16+xOCMmKHqhc0F/OZXMmSdxNzEPcqe8GzU3MZLxcJIg4oH7FqdtI\nTm/86w4Spd9owHFMZlNcXYTu+LNZcsw2u0gRayxcZXuO3OyHySxZEuIAHSTBCZ7l\n3EoY0zfJ6zk249MEl6n+GouoFmbGpBI6z3zbR3kCgYEAlCNZVH4uJrP5beTOZTTR\nVJRk7BXvEC6HsM140YtIN7NHy2GtzrgmmY/ZAFB/hX8Ft4ex2MxbIp3hvxroTqGn\nbfu7uv97NoPQqbjtc3Mz8h2IaXTVDUnWYY5gDu6rM2w+Z75/sWIGiTWrsdYX4ohb\nujngzJ7Ew7GgKSboj6mtlVM=\n-----END PRIVATE KEY-----\n" + } + } +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificates/certificatemanagercertificates-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "description": "ALL_REGIONS scoped self-managed certificate", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "projects/${projectId}/locations/global/certificates/certificatemanagercertificates-${uniqueId}", + "scope": "ALL_REGIONS", + "selfManaged": { + "pemCertificate": "-----BEGIN CERTIFICATE-----\nMIIDDzCCAfegAwIBAgIUDOiCLH9QNMMYnjPZVf4VwO9blsEwDQYJKoZIhvcNAQEL\nBQAwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wIBcNMjIwODI0MDg0MDUxWhgPMzAy\nMTEyMjUwODQwNTFaMBYxFDASBgNVBAMMC2V4YW1wbGUuY29tMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvOT925GG4lKV9HvAHsbecMhGPAqjhVRC26iZ\nUJC8oSWOu95lWJSX5ZhbiF6Nz192wDGV/VAh3Lxj8RYtcn75eDxQKTcKouDld+To\nCGIStPFWbR6rbysLuZqFVEXVOTvp2QIegInfrvnGC4j7Qpic7zrFB9HzJx+0HpeE\nyO4gkdzJfEK/gMmolUgJrKX59o+0+Rj+Jq3EtcQxL1fVBVJSx0NvpoR1eYpnHMr/\nrJKZkUUZ2xE86hrtpiP6OEYQTi00rmf4GnZF5QfGGD0xuoQXtR7Tu+XhKibXIhxc\nD4RzPLX1QS040PXvmMPLDb4YlUQ6V3Rs42JDvkkDwIMXZvn8awIDAQABo1MwUTAd\nBgNVHQ4EFgQURuo1CCZZAUv7xi02f2nC5tRbf18wHwYDVR0jBBgwFoAURuo1CCZZ\nAUv7xi02f2nC5tRbf18wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC\nAQEAqx3tDxurnYr9EUPhF5/LlDPYM+VI7EgrKdRnuIqUlZI0tm3vOGME0te6dBTC\nYLNaHLW3m/4Tm4M2eg0Kpz6CxJfn3109G31dCi0xwzSDHf5TPUWvqIVhq5WRgMIf\nn8KYBlQSmqdJBRztUIQH/UPFnSbxymlS4s5qwDgTH5ag9EEBcnWsQ2LZjKi0eqve\nMaqAvvB+j8RGZzYY4re94bSJI42zIZ6nMWPtXwRuDc30xl/u+E0jWIgWbPwSd6Km\n3wnJnGiU2ezPGq3zEU+Rc39VVIFKQpciNeYuF3neHPJvYOf58qW2Z8s0VH0MR1x3\n3DoO/e30FIr9j+PRD+s5BPKF2A==\n-----END CERTIFICATE-----", + "pemPrivateKey": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC85P3bkYbiUpX0\ne8Aext5wyEY8CqOFVELbqJlQkLyhJY673mVYlJflmFuIXo3PX3bAMZX9UCHcvGPx\nFi1yfvl4PFApNwqi4OV35OgIYhK08VZtHqtvKwu5moVURdU5O+nZAh6Aid+u+cYL\niPtCmJzvOsUH0fMnH7Qel4TI7iCR3Ml8Qr+AyaiVSAmspfn2j7T5GP4mrcS1xDEv\nV9UFUlLHQ2+mhHV5imccyv+skpmRRRnbETzqGu2mI/o4RhBOLTSuZ/gadkXlB8YY\nPTG6hBe1HtO75eEqJtciHFwPhHM8tfVBLTjQ9e+Yw8sNvhiVRDpXdGzjYkO+SQPA\ngxdm+fxrAgMBAAECggEAV4/A24TQpV4KFBw/WSTvnRFBeXinB1mhamhztWR6hCrA\nSPcVPKQY632eRI8sJmpGxl3V/Ogl4khT/cA9jfstEl7G++v/WrRsupCaPLSVnlnX\nKdsTNgOauk1WK9P5PMA4rPcuA4Cl91riQpubeWn8KWsxRWg90i+Ak8PB8lBsOaB1\nQzjigWlrRWSpodaw0MBIMZFDL2BYK8HEr+wyATYIyGvDQc9zCnMQIQIZyEPYepLO\n04Dw17YcjgnoJ5gLAFiTvDrCpTMewud1RQzvW5TAvG2piw34sf3QMGPM7aXNrfuZ\n4ZPC/MwVQgq9Nc+jeDsjApQmJKJ+3a8OdIPU89ArTQKBgQDCpHHQe1RzpHmIx47/\n9N5r+NPBhh8flDYmvgi6zPeBfrAaLWhidS8c7Voa6HwvMxbhryDEvc0YqI3vllfy\nxnRF+DfSryozW0gjrkXDGoOzqOJ3EuQwLSJnyX6La2lmufqsRFazwYJ5sxcjoGHK\n/sbwZkIUj1ejuH44ve+ZJQFfpwKBgQD4cLJrJhqImUDhHZRx9jBvxyeHy/RjmHK6\n70xQVDi9ZqeExHwtoSbolhXKLB1RtBnw+t5Csy7IDNBDsbUg9fXU8KyCTIdmsyws\nbDb5hdKsUF76rkKzlpttiXMRVWGS3CMKWahBpnL3lFB3tdtmskemkBTXVn4VgKAH\nxk9XnZ11nQKBgDbQSJ0FnkrSzscOK984/ko50Kh3NNyXyIgwjBTPFASLwNweXX8c\nsR/cV7usLQy9vnvf7cJ6EQAYt5/5Httnt+bceBwE6EV+N1qVAWBoXx6BOQV/dHN8\nwmun+tMYdJ5RUZ6hwCjvHedX3/RQfjnEdhHNOl6/31Zj5mfkVU0zdqeRAoGAcvIh\nerXMfPr7K6y16+xOCMmKHqhc0F/OZXMmSdxNzEPcqe8GzU3MZLxcJIg4oH7FqdtI\nTm/86w4Spd9owHFMZlNcXYTu+LNZcsw2u0gRayxcZXuO3OyHySxZEuIAHSTBCZ7l\n3EoY0zfJ6zk249MEl6n+GouoFmbGpBI6z3zbR3kCgYEAlCNZVH4uJrP5beTOZTTR\nVJRk7BXvEC6HsM140YtIN7NHy2GtzrgmmY/ZAFB/hX8Ft4ex2MxbIp3hvxroTqGn\nbfu7uv97NoPQqbjtc3Mz8h2IaXTVDUnWYY5gDu6rM2w+Z75/sWIGiTWrsdYX4ohb\nujngzJ7Ew7GgKSboj6mtlVM=\n-----END PRIVATE KEY-----\n" + } +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "targetHttpsProxy \"projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "targetHttpsProxy \"projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "test description", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "DISABLE", + "sslCertificates": [ + "https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificates/certificatemanagercertificates-${uniqueId}" + ], + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#targetHttpsProxy", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "DISABLE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "sslCertificates": [ + "//certificatemanager.googleapis.com/projects/${projectId}/locations/global/certificates/certificatemanagercertificates-${uniqueId}" + ], + "urlMap": "https://www.googleapis.com/compute/beta/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}/setQuicOverride?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "quicOverride": "ENABLE" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "compute.targetHttpsProxies.setQuicOverride", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "compute.targetHttpsProxies.setQuicOverride", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/targetHttpsProxies/computetargethttpsproxy-${uniqueId}/setUrlMap?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetUrlMap", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetUrlMap", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#targetHttpsProxy", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "ENABLE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "sslCertificates": [ + "//certificatemanager.googleapis.com/projects/${projectId}/locations/global/certificates/certificatemanagercertificates-${uniqueId}" + ], + "urlMap": "https://www.googleapis.com/compute/beta/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificates/certificatemanagercertificates-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "description": "ALL_REGIONS scoped self-managed certificate", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "projects/${projectId}/locations/global/certificates/certificatemanagercertificates-${uniqueId}", + "scope": "ALL_REGIONS", + "selfManaged": { + "pemCertificate": "-----BEGIN CERTIFICATE-----\nMIIDDzCCAfegAwIBAgIUDOiCLH9QNMMYnjPZVf4VwO9blsEwDQYJKoZIhvcNAQEL\nBQAwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wIBcNMjIwODI0MDg0MDUxWhgPMzAy\nMTEyMjUwODQwNTFaMBYxFDASBgNVBAMMC2V4YW1wbGUuY29tMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvOT925GG4lKV9HvAHsbecMhGPAqjhVRC26iZ\nUJC8oSWOu95lWJSX5ZhbiF6Nz192wDGV/VAh3Lxj8RYtcn75eDxQKTcKouDld+To\nCGIStPFWbR6rbysLuZqFVEXVOTvp2QIegInfrvnGC4j7Qpic7zrFB9HzJx+0HpeE\nyO4gkdzJfEK/gMmolUgJrKX59o+0+Rj+Jq3EtcQxL1fVBVJSx0NvpoR1eYpnHMr/\nrJKZkUUZ2xE86hrtpiP6OEYQTi00rmf4GnZF5QfGGD0xuoQXtR7Tu+XhKibXIhxc\nD4RzPLX1QS040PXvmMPLDb4YlUQ6V3Rs42JDvkkDwIMXZvn8awIDAQABo1MwUTAd\nBgNVHQ4EFgQURuo1CCZZAUv7xi02f2nC5tRbf18wHwYDVR0jBBgwFoAURuo1CCZZ\nAUv7xi02f2nC5tRbf18wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC\nAQEAqx3tDxurnYr9EUPhF5/LlDPYM+VI7EgrKdRnuIqUlZI0tm3vOGME0te6dBTC\nYLNaHLW3m/4Tm4M2eg0Kpz6CxJfn3109G31dCi0xwzSDHf5TPUWvqIVhq5WRgMIf\nn8KYBlQSmqdJBRztUIQH/UPFnSbxymlS4s5qwDgTH5ag9EEBcnWsQ2LZjKi0eqve\nMaqAvvB+j8RGZzYY4re94bSJI42zIZ6nMWPtXwRuDc30xl/u+E0jWIgWbPwSd6Km\n3wnJnGiU2ezPGq3zEU+Rc39VVIFKQpciNeYuF3neHPJvYOf58qW2Z8s0VH0MR1x3\n3DoO/e30FIr9j+PRD+s5BPKF2A==\n-----END CERTIFICATE-----", + "pemPrivateKey": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC85P3bkYbiUpX0\ne8Aext5wyEY8CqOFVELbqJlQkLyhJY673mVYlJflmFuIXo3PX3bAMZX9UCHcvGPx\nFi1yfvl4PFApNwqi4OV35OgIYhK08VZtHqtvKwu5moVURdU5O+nZAh6Aid+u+cYL\niPtCmJzvOsUH0fMnH7Qel4TI7iCR3Ml8Qr+AyaiVSAmspfn2j7T5GP4mrcS1xDEv\nV9UFUlLHQ2+mhHV5imccyv+skpmRRRnbETzqGu2mI/o4RhBOLTSuZ/gadkXlB8YY\nPTG6hBe1HtO75eEqJtciHFwPhHM8tfVBLTjQ9e+Yw8sNvhiVRDpXdGzjYkO+SQPA\ngxdm+fxrAgMBAAECggEAV4/A24TQpV4KFBw/WSTvnRFBeXinB1mhamhztWR6hCrA\nSPcVPKQY632eRI8sJmpGxl3V/Ogl4khT/cA9jfstEl7G++v/WrRsupCaPLSVnlnX\nKdsTNgOauk1WK9P5PMA4rPcuA4Cl91riQpubeWn8KWsxRWg90i+Ak8PB8lBsOaB1\nQzjigWlrRWSpodaw0MBIMZFDL2BYK8HEr+wyATYIyGvDQc9zCnMQIQIZyEPYepLO\n04Dw17YcjgnoJ5gLAFiTvDrCpTMewud1RQzvW5TAvG2piw34sf3QMGPM7aXNrfuZ\n4ZPC/MwVQgq9Nc+jeDsjApQmJKJ+3a8OdIPU89ArTQKBgQDCpHHQe1RzpHmIx47/\n9N5r+NPBhh8flDYmvgi6zPeBfrAaLWhidS8c7Voa6HwvMxbhryDEvc0YqI3vllfy\nxnRF+DfSryozW0gjrkXDGoOzqOJ3EuQwLSJnyX6La2lmufqsRFazwYJ5sxcjoGHK\n/sbwZkIUj1ejuH44ve+ZJQFfpwKBgQD4cLJrJhqImUDhHZRx9jBvxyeHy/RjmHK6\n70xQVDi9ZqeExHwtoSbolhXKLB1RtBnw+t5Csy7IDNBDsbUg9fXU8KyCTIdmsyws\nbDb5hdKsUF76rkKzlpttiXMRVWGS3CMKWahBpnL3lFB3tdtmskemkBTXVn4VgKAH\nxk9XnZ11nQKBgDbQSJ0FnkrSzscOK984/ko50Kh3NNyXyIgwjBTPFASLwNweXX8c\nsR/cV7usLQy9vnvf7cJ6EQAYt5/5Httnt+bceBwE6EV+N1qVAWBoXx6BOQV/dHN8\nwmun+tMYdJ5RUZ6hwCjvHedX3/RQfjnEdhHNOl6/31Zj5mfkVU0zdqeRAoGAcvIh\nerXMfPr7K6y16+xOCMmKHqhc0F/OZXMmSdxNzEPcqe8GzU3MZLxcJIg4oH7FqdtI\nTm/86w4Spd9owHFMZlNcXYTu+LNZcsw2u0gRayxcZXuO3OyHySxZEuIAHSTBCZ7l\n3EoY0zfJ6zk249MEl6n+GouoFmbGpBI6z3zbR3kCgYEAlCNZVH4uJrP5beTOZTTR\nVJRk7BXvEC6HsM140YtIN7NHy2GtzrgmmY/ZAFB/hX8Ft4ex2MxbIp3hvxroTqGn\nbfu7uv97NoPQqbjtc3Mz8h2IaXTVDUnWYY5gDu6rM2w+Z75/sWIGiTWrsdYX4ohb\nujngzJ7Ew7GgKSboj6mtlVM=\n-----END PRIVATE KEY-----\n" + } +} + +--- + +DELETE https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificates/certificatemanagercertificates-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.OperationMetadata", + "apiVersion": "v1", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/global/certificates/certificatemanagercertificates-${uniqueId}", + "verb": "delete" + }, + "name": "projects/${projectId}/locations/global/operations/${operationID}" +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/operations/${operationID}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "done": true, + "metadata": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.OperationMetadata", + "apiVersion": "v1", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/global/certificates/certificatemanagercertificates-${uniqueId}", + "verb": "delete" + }, + "name": "projects/${projectId}/locations/global/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.protobuf.Empty" + } +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-2-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "INTERNAL_MANAGED", + "name": "computebackendservice-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxycertificatemap/_generated_object_globaltargethttpsproxycertificatemap.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxycertificatemap/_generated_object_globaltargethttpsproxycertificatemap.golden.yaml new file mode 100644 index 0000000000..9588ffac7c --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxycertificatemap/_generated_object_globaltargethttpsproxycertificatemap.golden.yaml @@ -0,0 +1,35 @@ +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetHTTPSProxy +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/project-id: ${projectId} + cnrm.cloud.google.com/state-into-spec: absent + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 3 + labels: + cnrm-test: "true" + name: computetargethttpsproxy-${uniqueId} + namespace: ${uniqueId} +spec: + certificateMapRef: + name: certificatemap-${uniqueId} + description: test description + location: global + quicOverride: ENABLE + resourceID: computetargethttpsproxy-${uniqueId} + urlMapRef: + name: computeurlmap-2-${uniqueId} +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + creationTimestamp: "1970-01-01T00:00:00Z" + observedGeneration: 3 + proxyId: 1111111111111111 + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxycertificatemap/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxycertificatemap/_http.log new file mode 100644 index 0000000000..4b8b179704 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/globaltargethttpsproxycertificatemap/_http.log @@ -0,0 +1,1207 @@ +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "checkIntervalSec": 10, + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "name": "computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "name": "computeurlmap-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "urlMap \"projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "name": "computeurlmap-2-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-2-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificateMaps/certificatemap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "message": "Resource 'projects/${projectId}/locations/global/certificateMaps/certificatemap-${uniqueId}' was not found", + "status": "NOT_FOUND" + } +} + +--- + +POST https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificateMaps?alt=json&certificateMapId=certificatemap-${uniqueId} +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + } +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.OperationMetadata", + "apiVersion": "v1", + "createTime": "2024-04-01T12:34:56.123456Z", + "endTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/global/certificateMaps/certificatemap-${uniqueId}", + "verb": "create" + }, + "name": "projects/${projectId}/locations/global/operations/${operationID}" +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/operations/${operationID}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "done": true, + "metadata": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.OperationMetadata", + "apiVersion": "v1", + "createTime": "2024-04-01T12:34:56.123456Z", + "endTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/global/certificateMaps/certificatemap-${uniqueId}", + "verb": "create" + }, + "name": "projects/${projectId}/locations/global/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.CertificateMap", + "createTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/global/certificateMaps/certificatemap-${uniqueId}", + "updateTime": "2024-04-01T12:34:56.123456Z" + } +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificateMaps/certificatemap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "projects/${projectId}/locations/global/certificateMaps/certificatemap-${uniqueId}", + "updateTime": "2024-04-01T12:34:56.123456Z" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "targetHttpsProxy \"projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "targetHttpsProxy \"projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "certificateMap": "//certificatemanager.googleapis.com/projects/${projectId}/locations/global/certificateMaps/certificatemap-${uniqueId}", + "description": "test description", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "DISABLE", + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificateMap": "//certificatemanager.googleapis.com/projects/${projectId}/locations/global/certificateMaps/certificatemap-${uniqueId}", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#targetHttpsProxy", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "DISABLE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "urlMap": "https://www.googleapis.com/compute/beta/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}/setQuicOverride?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "quicOverride": "ENABLE" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "compute.targetHttpsProxies.setQuicOverride", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "compute.targetHttpsProxies.setQuicOverride", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/targetHttpsProxies/computetargethttpsproxy-${uniqueId}/setUrlMap?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "urlMap": "projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetUrlMap", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetUrlMap", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificateMap": "//certificatemanager.googleapis.com/projects/${projectId}/locations/global/certificateMaps/certificatemap-${uniqueId}", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#targetHttpsProxy", + "name": "computetargethttpsproxy-${uniqueId}", + "quicOverride": "ENABLE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "urlMap": "https://www.googleapis.com/compute/beta/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificateMaps/certificatemap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "name": "projects/${projectId}/locations/global/certificateMaps/certificatemap-${uniqueId}", + "updateTime": "2024-04-01T12:34:56.123456Z" +} + +--- + +DELETE https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/certificateMaps/certificatemap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.OperationMetadata", + "apiVersion": "v1", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/global/certificateMaps/certificatemap-${uniqueId}", + "verb": "delete" + }, + "name": "projects/${projectId}/locations/global/operations/${operationID}" +} + +--- + +GET https://certificatemanager.googleapis.com/v1/projects/${projectId}/locations/global/operations/${operationID}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "done": true, + "metadata": { + "@type": "type.googleapis.com/google.cloud.certificatemanager.v1.OperationMetadata", + "apiVersion": "v1", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/global/certificateMaps/certificatemap-${uniqueId}", + "verb": "delete" + }, + "name": "projects/${projectId}/locations/global/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.protobuf.Empty" + } +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-2-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/regionaltargethttpsproxy/_generated_object_regionaltargethttpsproxy.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/regionaltargethttpsproxy/_generated_object_regionaltargethttpsproxy.golden.yaml new file mode 100644 index 0000000000..25f30f2fd6 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/regionaltargethttpsproxy/_generated_object_regionaltargethttpsproxy.golden.yaml @@ -0,0 +1,35 @@ +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetHTTPSProxy +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/project-id: ${projectId} + cnrm.cloud.google.com/state-into-spec: absent + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 3 + labels: + cnrm-test: "true" + name: computetargethttpsproxy-${uniqueId} + namespace: ${uniqueId} +spec: + description: test description + location: us-central1 + quicOverride: ENABLE + resourceID: computetargethttpsproxy-${uniqueId} + sslCertificates: + - name: computesslcertificate-${uniqueId} + urlMapRef: + name: computeurlmap-2-${uniqueId} +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + creationTimestamp: "1970-01-01T00:00:00Z" + observedGeneration: 3 + proxyId: 1111111111111111 + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/targetHttpsProxies/computetargethttpsproxy-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/regionaltargethttpsproxy/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/regionaltargethttpsproxy/_http.log new file mode 100644 index 0000000000..0022803887 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargethttpsproxy/regionaltargethttpsproxy/_http.log @@ -0,0 +1,1182 @@ +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "healthCheck \"projects/${projectId}/regions/us-central1/healthChecks/computehealthcheck-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "healthCheck \"projects/${projectId}/regions/us-central1/healthChecks/computehealthcheck-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/healthChecks?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "checkIntervalSec": 10, + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "name": "computehealthcheck-${uniqueId}", + "region": "projects/${projectId}/global/regions/us-central1", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "region": "projects/${projectId}/global/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "backendService \"projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "backendService \"projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/backendServices?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "backends": null, + "connectionDraining": { + "drainingTimeoutSec": 0 + }, + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "protocol": "HTTPS", + "region": "projects/${projectId}/global/regions/us-central1" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 0 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "protocol": "HTTPS", + "region": "projects/${projectId}/global/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "urlMap \"projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "urlMap \"projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/urlMaps?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "defaultService": "projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId}", + "name": "computeurlmap-${uniqueId}", + "region": "projects/${projectId}/global/regions/us-central1" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-${uniqueId}", + "region": "projects/${projectId}/global/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "urlMap \"projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-2-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "urlMap \"projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-2-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/urlMaps?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "defaultService": "projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId}", + "name": "computeurlmap-2-${uniqueId}", + "region": "projects/${projectId}/global/regions/us-central1" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-2-${uniqueId}", + "region": "projects/${projectId}/global/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "sslCertificate \"projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "sslCertificate \"projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n", + "region": "projects/${projectId}/global/regions/us-central1" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "kind": "compute#sslCertificate", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n", + "region": "projects/${projectId}/global/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "targetHttpsProxy \"projects/${projectId}/regions/us-central1/targetHttpsProxies/computetargethttpsproxy-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "targetHttpsProxy \"projects/${projectId}/regions/us-central1/targetHttpsProxies/computetargethttpsproxy-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/targetHttpsProxies?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "description": "test description", + "name": "computetargethttpsproxy-${uniqueId}", + "region": "projects/${projectId}/global/regions/us-central1", + "sslCertificates": [ + "projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}" + ], + "urlMap": "projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#targetHttpsProxy", + "name": "computetargethttpsproxy-${uniqueId}", + "region": "https://www.googleapis.com/compute/beta/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "sslCertificates": [ + "https://www.googleapis.com/compute/beta/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}" + ], + "urlMap": "https://www.googleapis.com/compute/beta/projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/targetHttpsProxies/computetargethttpsproxy-${uniqueId}/setUrlMap?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "urlMap": "projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-2-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetUrlMap", + "progress": 0, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "SetUrlMap", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "description": "test description", + "fingerprint": "abcdef0123A=", + "id": "000000000000000000000", + "kind": "compute#targetHttpsProxy", + "name": "computetargethttpsproxy-${uniqueId}", + "region": "https://www.googleapis.com/compute/beta/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "sslCertificates": [ + "https://www.googleapis.com/compute/beta/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}" + ], + "urlMap": "https://www.googleapis.com/compute/beta/projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/targetHttpsProxies/computetargethttpsproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetHttpsProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/targetHttpsProxies/computetargethttpsproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "kind": "compute#sslCertificate", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n", + "region": "projects/${projectId}/global/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "region": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-2-${uniqueId}", + "region": "projects/${projectId}/global/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-2-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-2-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "defaultService": "projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId}", + "id": "000000000000000000000", + "kind": "compute#urlMap", + "name": "computeurlmap-${uniqueId}", + "region": "projects/${projectId}/global/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 0 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "protocol": "HTTPS", + "region": "projects/${projectId}/global/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "region": "projects/${projectId}/global/regions/us-central1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargetsslproxy/_generated_object_computetargetsslproxy.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargetsslproxy/_generated_object_computetargetsslproxy.golden.yaml new file mode 100644 index 0000000000..64bc976e83 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargetsslproxy/_generated_object_computetargetsslproxy.golden.yaml @@ -0,0 +1,32 @@ +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetSSLProxy +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/project-id: ${projectId} + cnrm.cloud.google.com/state-into-spec: absent + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 2 + labels: + cnrm-test: "true" + name: computetargetsslproxy-${uniqueId} + namespace: ${uniqueId} +spec: + backendServiceRef: + name: computebackendservice-${uniqueId} + resourceID: computetargetsslproxy-${uniqueId} + sslCertificates: + - name: computesslcertificate-${uniqueId} +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + creationTimestamp: "1970-01-01T00:00:00Z" + observedGeneration: 2 + proxyId: 1111111111111111 + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargetsslproxy/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargetsslproxy/_http.log new file mode 100644 index 0000000000..7fbdee0cc6 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargetsslproxy/_http.log @@ -0,0 +1,765 @@ +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "checkIntervalSec": 10, + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "name": "computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "protocol": "SSL" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "protocol": "SSL", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "sslCertificate \"projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "sslCertificate \"projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "kind": "compute#sslCertificate", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "targetSslProxy \"projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "targetSslProxy \"projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "name": "computetargetsslproxy-${uniqueId}", + "proxyHeader": "NONE", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "sslCertificates": [ + "projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ] +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetSslProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetSslProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "kind": "compute#targetSslProxy", + "name": "computetargetsslproxy-${uniqueId}", + "proxyHeader": "NONE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}", + "sslCertificates": [ + "projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" + ] +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetSslProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetSslProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetSslProxies/computetargetsslproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "kind": "compute#sslCertificate", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "protocol": "SSL", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "httpHealthCheck": { + "port": 80, + "proxyHeader": "NONE", + "requestPath": "/" + }, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "timeoutSec": 5, + "type": "HTTP", + "unhealthyThreshold": 2 +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargettcpproxy/_generated_object_computetargettcpproxy.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargettcpproxy/_generated_object_computetargettcpproxy.golden.yaml new file mode 100644 index 0000000000..25f407780d --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargettcpproxy/_generated_object_computetargettcpproxy.golden.yaml @@ -0,0 +1,31 @@ +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeTargetTCPProxy +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/project-id: ${projectId} + cnrm.cloud.google.com/state-into-spec: absent + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 3 + labels: + cnrm-test: "true" + name: computetargettcpproxy-${uniqueId} + namespace: ${uniqueId} +spec: + backendServiceRef: + name: computebackendservice-${uniqueId} + proxyHeader: PROXY_V1 + resourceID: computetargettcpproxy-${uniqueId} +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + creationTimestamp: "1970-01-01T00:00:00Z" + observedGeneration: 3 + proxyId: 1111111111111111 + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargettcpproxy/_http.log b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargettcpproxy/_http.log new file mode 100644 index 0000000000..f1d2876156 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargettcpproxy/_http.log @@ -0,0 +1,632 @@ +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "healthCheck \"projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "checkIntervalSec": 10, + "healthyThreshold": 2, + "name": "computehealthcheck-${uniqueId}", + "tcpHealthCheck": { + "port": 443, + "proxyHeader": "NONE" + }, + "timeoutSec": 5, + "type": "TCP", + "unhealthyThreshold": 2 +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "tcpHealthCheck": { + "port": 443, + "proxyHeader": "NONE" + }, + "timeoutSec": 5, + "type": "TCP", + "unhealthyThreshold": 2 +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "backendService \"projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "protocol": "TCP" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "protocol": "TCP", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "targetTcpProxy \"projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "targetTcpProxy \"projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "name": "computetargettcpproxy-${uniqueId}", + "proxyHeader": "NONE", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetTcpProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetTcpProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "kind": "compute#targetTcpProxy", + "name": "computetargettcpproxy-${uniqueId}", + "proxyHeader": "NONE", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}/setProxyHeader?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "proxyHeader": "PROXY_V1" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "setProxyHeader", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetTcpProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "setProxyHeader", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetTcpProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "kind": "compute#targetTcpProxy", + "name": "computetargettcpproxy-${uniqueId}", + "proxyHeader": "PROXY_V1", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}", + "service": "projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${targetTcpProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${targetTcpProxiesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/targetTcpProxies/computetargettcpproxy-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "connectionDraining": { + "drainingTimeoutSec": 300 + }, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthChecks": [ + "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}" + ], + "iap": { + "enabled": false, + "oauth2ClientId": "", + "oauth2ClientSecret": "" + }, + "id": "000000000000000000000", + "kind": "compute#backendService", + "loadBalancingScheme": "EXTERNAL", + "name": "computebackendservice-${uniqueId}", + "protocol": "TCP", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/backendServices/computebackendservice-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "checkIntervalSec": 10, + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "healthyThreshold": 2, + "id": "000000000000000000000", + "kind": "compute#healthCheck", + "name": "computehealthcheck-${uniqueId}", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}", + "tcpHealthCheck": { + "port": 443, + "proxyHeader": "NONE" + }, + "timeoutSec": 5, + "type": "TCP", + "unhealthyThreshold": 2 +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/healthChecks/computehealthcheck-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargetvpngateway/_generated_object_computetargetvpngateway.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargetvpngateway/_generated_object_computetargetvpngateway.golden.yaml index 7e64eebc87..c46141d023 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargetvpngateway/_generated_object_computetargetvpngateway.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computetargetvpngateway/_generated_object_computetargetvpngateway.golden.yaml @@ -18,7 +18,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeurlmap/regionalcomputeurlmap/_generated_object_regionalcomputeurlmap.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeurlmap/regionalcomputeurlmap/_generated_object_regionalcomputeurlmap.golden.yaml index bfd75c1840..94ca375700 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeurlmap/regionalcomputeurlmap/_generated_object_regionalcomputeurlmap.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computeurlmap/regionalcomputeurlmap/_generated_object_regionalcomputeurlmap.golden.yaml @@ -1,28 +1,14 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeURLMap metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 4 + generation: 3 labels: cnrm-test: "true" name: computeurlmap-${uniqueId} @@ -100,68 +86,6 @@ spec: responseHeadersToRemove: - RemoveMe weight: 400 - - defaultService: - backendServiceRef: - external: projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId} - name: allpaths - pathRule: - - paths: - - /home - routeAction: - corsPolicy: - allowCredentials: true - allowHeaders: - - Allowed content - allowMethods: - - GET - allowOrigins: - - Allowed origin - disabled: false - exposeHeaders: - - Exposed header - maxAge: 30 - faultInjectionPolicy: - abort: - httpStatus: 234 - percentage: 5.6 - delay: - fixedDelay: - nanos: 50000 - seconds: "0" - percentage: 7.8 - requestMirrorPolicy: - backendServiceRef: - external: projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId} - retryPolicy: - numRetries: 4 - perTryTimeout: - seconds: "30" - retryConditions: - - 5xx - - deadline-exceeded - timeout: - nanos: 750000000 - seconds: "20" - urlRewrite: - hostRewrite: A replacement header - pathPrefixRewrite: A replacement path - weightedBackendServices: - - backendServiceRef: - external: projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId} - headerAction: - requestHeadersToAdd: - - headerName: AddMe - headerValue: MyValue - replace: true - requestHeadersToRemove: - - RemoveMe - responseHeadersToAdd: - - headerName: AddMe - headerValue: MyValue - replace: false - responseHeadersToRemove: - - RemoveMe - weight: 400 resourceID: computeurlmap-${uniqueId} test: - host: hi.com @@ -169,11 +93,6 @@ spec: service: backendServiceRef: name: computebackendservice-${uniqueId} - - host: hi.com - path: /home - service: - backendServiceRef: - external: projects/${projectId}/regions/us-central1/backendServices/computebackendservice-${uniqueId} status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" @@ -183,5 +102,5 @@ status: type: Ready creationTimestamp: "1970-01-01T00:00:00Z" mapId: 1111111111111111 - observedGeneration: 4 + observedGeneration: 3 selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/regions/us-central1/urlMaps/computeurlmap-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computevpngateway/_generated_object_computevpngateway.golden.yaml b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computevpngateway/_generated_object_computevpngateway.golden.yaml index 9b53164b07..418be259fa 100644 --- a/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computevpngateway/_generated_object_computevpngateway.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/compute/v1beta1/computevpngateway/_generated_object_computevpngateway.golden.yaml @@ -1,24 +1,10 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeVPNGateway metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -33,7 +19,6 @@ spec: name: default region: us-central1 resourceID: computevpngateway-${uniqueId} - stackType: IPV4_ONLY status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/basic/container/v1beta1/containercluster/_generated_object_containercluster.golden.yaml b/pkg/test/resourcefixture/testdata/basic/container/v1beta1/containercluster/_generated_object_containercluster.golden.yaml index 82dc85babb..5496c92b4d 100644 --- a/pkg/test/resourcefixture/testdata/basic/container/v1beta1/containercluster/_generated_object_containercluster.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/container/v1beta1/containercluster/_generated_object_containercluster.golden.yaml @@ -6,7 +6,7 @@ metadata: cnrm.cloud.google.com/mutable-but-unreadable-fields: '{}' cnrm.cloud.google.com/observed-secret-versions: (removed) cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -17,20 +17,10 @@ metadata: name: cluster-sample-${uniqueId} namespace: ${uniqueId} spec: - addonsConfig: - gcePersistentDiskCsiDriverConfig: - enabled: true - networkPolicyConfig: - disabled: true clusterAutoscaling: autoProvisioningDefaults: bootDiskKMSKeyRef: name: kmscryptokey-${uniqueId} - diskSize: 100 - imageType: COS_CONTAINERD - minCpuPlatform: automatic - serviceAccountRef: - external: default autoscalingProfile: BALANCED enabled: true resourceLimits: @@ -40,16 +30,10 @@ spec: - maximum: 1000 minimum: 100 resourceType: memory - clusterTelemetry: - type: ENABLED - databaseEncryption: - state: DECRYPTED - enableShieldedNodes: true initialNodeCount: 1 ipAllocationPolicy: clusterIpv4CidrBlock: /20 servicesIpv4CidrBlock: /20 - stackType: IPV4 location: us-central1-a loggingConfig: enableComponents: @@ -57,41 +41,25 @@ spec: - WORKLOADS loggingService: none monitoringConfig: - advancedDatapathObservabilityConfig: - - enableMetrics: false enableComponents: - SYSTEM_COMPONENTS - APISERVER managedPrometheus: enabled: true monitoringService: none - networkPolicy: - enabled: false networkRef: name: computenetwork-${uniqueId} - networkingMode: VPC_NATIVE nodeConfig: linuxNodeConfig: cgroupMode: CGROUP_MODE_UNSPECIFIED sysctls: net.core.somaxconn: "4096" - loggingVariant: DEFAULT - nodeLocations: - - us-central1-a - nodeVersion: "" notificationConfig: pubsub: enabled: true topicRef: name: pubsubtopic-${uniqueId} - podSecurityPolicyConfig: - enabled: false - releaseChannel: - channel: REGULAR resourceID: cluster-sample-${uniqueId} - securityPostureConfig: - mode: BASIC - vulnerabilityMode: VULNERABILITY_MODE_UNSPECIFIED subnetworkRef: name: computesubnetwork-${uniqueId} status: diff --git a/pkg/test/resourcefixture/testdata/basic/container/v1beta1/containercluster/_http.log b/pkg/test/resourcefixture/testdata/basic/container/v1beta1/containercluster/_http.log index 388d363d94..ef6dac13bb 100644 --- a/pkg/test/resourcefixture/testdata/basic/container/v1beta1/containercluster/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/container/v1beta1/containercluster/_http.log @@ -491,6 +491,14 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", + "primary": { + "algorithm": "EC_SIGN_P384_SHA384", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, "purpose": "ASYMMETRIC_SIGN", "versionTemplate": { "algorithm": "EC_SIGN_P384_SHA384", @@ -524,6 +532,14 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", + "primary": { + "algorithm": "EC_SIGN_P384_SHA384", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, "purpose": "ASYMMETRIC_SIGN", "versionTemplate": { "algorithm": "EC_SIGN_P384_SHA384", @@ -1301,6 +1317,14 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", + "primary": { + "algorithm": "EC_SIGN_P384_SHA384", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, "purpose": "ASYMMETRIC_SIGN", "versionTemplate": { "algorithm": "EC_SIGN_P384_SHA384", diff --git a/pkg/test/resourcefixture/testdata/basic/container/v1beta1/containernodepool/_generated_object_containernodepool.golden.yaml b/pkg/test/resourcefixture/testdata/basic/container/v1beta1/containernodepool/_generated_object_containernodepool.golden.yaml index 28a47d86c8..a0592e975e 100644 --- a/pkg/test/resourcefixture/testdata/basic/container/v1beta1/containernodepool/_generated_object_containernodepool.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/container/v1beta1/containernodepool/_generated_object_containernodepool.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -20,41 +20,13 @@ spec: minNodeCount: 1 clusterRef: name: cluster-sample-${uniqueId} - initialNodeCount: 1 location: us-central1-a - management: - autoRepair: true - autoUpgrade: true - maxPodsPerNode: 110 nodeConfig: - diskSizeGb: 100 - diskType: pd-balanced - imageType: COS_CONTAINERD - loggingVariant: DEFAULT - machineType: e2-standard-4 - metadata: - disable-legacy-endpoints: "true" - oauthScopes: - - https://www.googleapis.com/auth/devstorage.read_only - - https://www.googleapis.com/auth/logging.write - - https://www.googleapis.com/auth/monitoring - - https://www.googleapis.com/auth/service.management.readonly - - https://www.googleapis.com/auth/servicecontrol - - https://www.googleapis.com/auth/trace.append - serviceAccountRef: - external: default - shieldedInstanceConfig: - enableIntegrityMonitoring: true taint: - effect: NO_SCHEDULE key: newKey value: newValue - nodeCount: 0 resourceID: nodepool-sample-${uniqueId} - upgradeSettings: - maxSurge: 1 - strategy: SURGE - version: "" status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/basic/container/v1beta1/containernodepool/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/container/v1beta1/containernodepool/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/container/v1beta1/containernodepool/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/container/v1beta1/containernodepool/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/containeranalysis/v1beta1/containeranalysisnote/_generated_object_containeranalysisnote.golden.yaml b/pkg/test/resourcefixture/testdata/basic/containeranalysis/v1beta1/containeranalysisnote/_generated_object_containeranalysisnote.golden.yaml index 201b4aaa56..b434cba59a 100644 --- a/pkg/test/resourcefixture/testdata/basic/containeranalysis/v1beta1/containeranalysisnote/_generated_object_containeranalysisnote.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/containeranalysis/v1beta1/containeranalysisnote/_generated_object_containeranalysisnote.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/containeranalysis/v1beta1/containeranalysisnote/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/containeranalysis/v1beta1/containeranalysisnote/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/containeranalysis/v1beta1/containeranalysisnote/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/containeranalysis/v1beta1/containeranalysisnote/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedcluster/_generated_object_containerattachedcluster.golden.yaml b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterbasic/_generated_object_containerattachedclusterbasic.golden.yaml similarity index 61% rename from pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedcluster/_generated_object_containerattachedcluster.golden.yaml rename to pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterbasic/_generated_object_containerattachedclusterbasic.golden.yaml index 11c15931ab..a89a831909 100644 --- a/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedcluster/_generated_object_containerattachedcluster.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterbasic/_generated_object_containerattachedclusterbasic.golden.yaml @@ -1,24 +1,10 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: containerattached.cnrm.cloud.google.com/v1beta1 kind: ContainerAttachedCluster metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"deletionPolicy":"DELETE_IGNORE_ERRORS"}}' - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -37,7 +23,7 @@ spec: location: us-west1 oidcConfig: issuerUrl: https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F - platformVersion: 1.27.0-gke.2 + platformVersion: 1.28.0-gke.2 projectRef: external: ${projectId} resourceID: kcc-attached-cluster-127 @@ -49,4 +35,3 @@ status: status: "True" type: Ready observedGeneration: 2 - state: STATE_UNSPECIFIED diff --git a/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedcluster/_http.log b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterbasic/_http.log similarity index 59% rename from pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedcluster/_http.log rename to pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterbasic/_http.log index a5348ec650..6b4ca67bf0 100644 --- a/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedcluster/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterbasic/_http.log @@ -234,12 +234,22 @@ Content-Type: application/json User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager 404 Not Found -Content-Type: application/json +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 { - "code": 5, - "details": [], - "message": "attachedCluster \"projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127\" not found" + "error": { + "code": 404, + "message": "Resource 'projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127' was not found", + "status": "NOT_FOUND" + } } --- @@ -263,13 +273,68 @@ User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 t } 200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.cloud.gkemulticloud.v1.OperationMetadata", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "verb": "create" + }, + "name": "projects/${projectId}/locations/us-west1/operations/${operationID}" +} + +--- + +GET https://us-west1-gkemulticloud.googleapis.com/v1/projects/${projectId}/locations/us-west1/operations/${operationID}?alt=json Content-Type: application/json -Grpc-Metadata-Content-Type: application/grpc +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 { "done": true, - "metadata": null, - "name": "operations/${operationID}" + "metadata": { + "@type": "type.googleapis.com/google.cloud.gkemulticloud.v1.OperationMetadata", + "createTime": "2024-04-01T12:34:56.123456Z", + "endTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "verb": "create" + }, + "name": "projects/${projectId}/locations/us-west1/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.cloud.gkemulticloud.v1.AttachedCluster", + "description": "Test attached cluster", + "distribution": "eks", + "fleet": { + "project": "projects/${projectNumber}" + }, + "loggingConfig": {}, + "name": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "oidcConfig": { + "issuerUrl": "https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F" + }, + "platformVersion": "1.27.0-gke.2", + "state": "RUNNING" + } } --- @@ -279,45 +344,33 @@ Content-Type: application/json User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager 200 OK -Content-Type: application/json -Grpc-Metadata-Content-Type: application/grpc +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 { - "annotations": {}, - "authorization": null, - "binaryAuthorization": null, - "clusterRegion": "", - "createTime": null, "description": "Test attached cluster", "distribution": "eks", - "errors": [], - "etag": "abcdef0123A=", "fleet": { - "membership": "", "project": "projects/${projectNumber}" }, - "kubernetesVersion": "", - "loggingConfig": { - "componentConfig": null - }, - "monitoringConfig": null, + "loggingConfig": {}, "name": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", "oidcConfig": { - "issuerUrl": "https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F", - "jwks": "" + "issuerUrl": "https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F" }, - "platformVersion": "1.27.0-gke.2", - "proxyConfig": null, - "reconciling": false, - "state": "STATE_UNSPECIFIED", - "uid": "111111111111111111111", - "updateTime": null, - "workloadIdentityConfig": null + "platformVersion": "1.27.0-gke.2" } --- -PATCH https://us-west1-gkemulticloud.googleapis.com/v1/projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127?alt=json&updateMask=description +PATCH https://us-west1-gkemulticloud.googleapis.com/v1/projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127?alt=json&updateMask=description%2CplatformVersion Content-Type: application/json User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager @@ -332,17 +385,71 @@ User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 t "oidcConfig": { "issuerUrl": "https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F" }, - "platformVersion": "1.27.0-gke.2" + "platformVersion": "1.28.0-gke.2" } 200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.cloud.gkemulticloud.v1.OperationMetadata", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "verb": "update" + }, + "name": "projects/${projectId}/locations/us-west1/operations/${operationID}" +} + +--- + +GET https://us-west1-gkemulticloud.googleapis.com/v1/projects/${projectId}/locations/us-west1/operations/${operationID}?alt=json Content-Type: application/json -Grpc-Metadata-Content-Type: application/grpc +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 { "done": true, - "metadata": null, - "name": "operations/${operationID}" + "metadata": { + "@type": "type.googleapis.com/google.cloud.gkemulticloud.v1.OperationMetadata", + "createTime": "2024-04-01T12:34:56.123456Z", + "endTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "verb": "update" + }, + "name": "projects/${projectId}/locations/us-west1/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.cloud.gkemulticloud.v1.AttachedCluster", + "description": "Test attached cluster update", + "distribution": "eks", + "fleet": { + "project": "projects/${projectNumber}" + }, + "loggingConfig": {}, + "name": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "oidcConfig": { + "issuerUrl": "https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F" + }, + "platformVersion": "1.28.0-gke.2" + } } --- @@ -352,40 +459,28 @@ Content-Type: application/json User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager 200 OK -Content-Type: application/json -Grpc-Metadata-Content-Type: application/grpc +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 { - "annotations": {}, - "authorization": null, - "binaryAuthorization": null, - "clusterRegion": "", - "createTime": null, "description": "Test attached cluster update", "distribution": "eks", - "errors": [], - "etag": "abcdef0123A=", "fleet": { - "membership": "", "project": "projects/${projectNumber}" }, - "kubernetesVersion": "", - "loggingConfig": { - "componentConfig": null - }, - "monitoringConfig": null, + "loggingConfig": {}, "name": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", "oidcConfig": { - "issuerUrl": "https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F", - "jwks": "" + "issuerUrl": "https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F" }, - "platformVersion": "1.27.0-gke.2", - "proxyConfig": null, - "reconciling": false, - "state": "STATE_UNSPECIFIED", - "uid": "111111111111111111111", - "updateTime": null, - "workloadIdentityConfig": null + "platformVersion": "1.28.0-gke.2" } --- @@ -395,11 +490,54 @@ Content-Type: application/json User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager 200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.cloud.gkemulticloud.v1.OperationMetadata", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "verb": "delete" + }, + "name": "projects/${projectId}/locations/us-west1/operations/${operationID}" +} + +--- + +GET https://us-west1-gkemulticloud.googleapis.com/v1/projects/${projectId}/locations/us-west1/operations/${operationID}?alt=json Content-Type: application/json -Grpc-Metadata-Content-Type: application/grpc +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 { "done": true, - "metadata": null, - "name": "operations/${operationID}" + "metadata": { + "@type": "type.googleapis.com/google.cloud.gkemulticloud.v1.OperationMetadata", + "createTime": "2024-04-01T12:34:56.123456Z", + "endTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "verb": "delete" + }, + "name": "projects/${projectId}/locations/us-west1/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.protobuf.Empty" + } } \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedcluster/create.yaml b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterbasic/create.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedcluster/create.yaml rename to pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterbasic/create.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedcluster/dependencies.yaml b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterbasic/dependencies.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedcluster/dependencies.yaml rename to pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterbasic/dependencies.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedcluster/update.yaml b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterbasic/update.yaml similarity index 97% rename from pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedcluster/update.yaml rename to pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterbasic/update.yaml index 14440fc06e..378f0ec868 100644 --- a/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedcluster/update.yaml +++ b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterbasic/update.yaml @@ -26,7 +26,7 @@ spec: distribution: "eks" oidcConfig: issuerUrl: https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F - platformVersion: 1.27.0-gke.2 + platformVersion: 1.28.0-gke.2 fleet: projectRef: name: project-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/_generated_object_containerattachedclusterfull.golden.yaml b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/_generated_object_containerattachedclusterfull.golden.yaml new file mode 100644 index 0000000000..49ea4179dc --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/_generated_object_containerattachedclusterfull.golden.yaml @@ -0,0 +1,55 @@ +apiVersion: containerattached.cnrm.cloud.google.com/v1beta1 +kind: ContainerAttachedCluster +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"deletionPolicy":"DELETE_IGNORE_ERRORS"}}' + cnrm.cloud.google.com/state-into-spec: absent + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 2 + labels: + cnrm-test: "true" + name: containerattachedcluster-${uniqueId} + namespace: ${uniqueId} +spec: + annotations: + key1: value1a + key2: value2 + key3: value3 + authorization: + adminUsers: + - user1@company.com + - user2@company.com + binaryAuthorization: + evaluationMode: DISABLED + deletionPolicy: DELETE_IGNORE_ERRORS + description: Test attached cluster update + distribution: eks + fleet: + projectRef: + name: project-${uniqueId} + location: us-west1 + loggingConfig: + componentConfig: + enableComponents: + - SYSTEM_COMPONENTS + - WORKLOADS + monitoringConfig: + managedPrometheusConfig: + enabled: true + oidcConfig: + issuerUrl: https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F + platformVersion: 1.28.0-gke.2 + projectRef: + external: ${projectId} + resourceID: kcc-attached-cluster-127 +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + observedGeneration: 2 diff --git a/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/_http.log b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/_http.log new file mode 100644 index 0000000000..73b506b8a7 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/_http.log @@ -0,0 +1,691 @@ +GET https://cloudresourcemanager.googleapis.com/v1/projects/${projectId}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "lifecycleState": "ACTIVE", + "projectId": "${projectId}", + "projectNumber": "${projectNumber}" +} + +--- + +GET https://cloudbilling.googleapis.com/v1/projects/${projectId}/billingInfo?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "billingAccountName": "", + "billingEnabled": false, + "name": "projects/${projectId}/billingInfo", + "projectId": "${projectId}" +} + +--- + +GET https://cloudresourcemanager.googleapis.com/v1/projects/${projectId}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "lifecycleState": "ACTIVE", + "projectId": "${projectId}", + "projectNumber": "${projectNumber}" +} + +--- + +PUT https://cloudresourcemanager.googleapis.com/v1/projects/${projectId}?alt=json&prettyPrint=false +Content-Type: application/json +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "lifecycleState": "ACTIVE", + "name": "${projectId}", + "projectId": "${projectId}", + "projectNumber": "${projectNumber}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "lifecycleState": "ACTIVE", + "name": "projects/${projectId}", + "projectId": "${projectId}", + "projectNumber": "${projectNumber}" +} + +--- + +PUT https://cloudresourcemanager.googleapis.com/v1/projects/${projectId}?alt=json&prettyPrint=false +Content-Type: application/json +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "lifecycleState": "ACTIVE", + "name": "projects/${projectId}", + "parent": { + "id": "123450001", + "type": "organization" + }, + "projectId": "${projectId}", + "projectNumber": "${projectNumber}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "lifecycleState": "ACTIVE", + "name": "projects/${projectId}", + "projectId": "${projectId}", + "projectNumber": "${projectNumber}" +} + +--- + +PUT https://cloudresourcemanager.googleapis.com/v1/projects/${projectId}?alt=json&prettyPrint=false +Content-Type: application/json +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "lifecycleState": "ACTIVE", + "name": "projects/${projectId}", + "projectId": "${projectId}", + "projectNumber": "${projectNumber}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "lifecycleState": "ACTIVE", + "name": "projects/${projectId}", + "projectId": "${projectId}", + "projectNumber": "${projectNumber}" +} + +--- + +GET https://cloudresourcemanager.googleapis.com/v1/projects/${projectId}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "lifecycleState": "ACTIVE", + "name": "projects/${projectId}", + "projectId": "${projectId}", + "projectNumber": "${projectNumber}" +} + +--- + +GET https://cloudbilling.googleapis.com/v1/projects/${projectId}/billingInfo?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "billingAccountName": "", + "billingEnabled": false, + "name": "projects/${projectId}/billingInfo", + "projectId": "${projectId}" +} + +--- + +GET https://us-west1-gkemulticloud.googleapis.com/v1/projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "message": "Resource 'projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127' was not found", + "status": "NOT_FOUND" + } +} + +--- + +POST https://us-west1-gkemulticloud.googleapis.com/v1/projects/${projectId}/locations/us-west1/attachedClusters?alt=json&attached_cluster_id=kcc-attached-cluster-127 +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "annotations": { + "key1": "value1", + "key2": "value2" + }, + "authorization": { + "admin_users": [ + { + "username": "user@company.com" + } + ] + }, + "binaryAuthorization": { + "evaluationMode": "PROJECT_SINGLETON_POLICY_ENFORCE" + }, + "description": "Test attached cluster", + "distribution": "eks", + "fleet": { + "project": "projects/${projectNumber}" + }, + "loggingConfig": { + "componentConfig": { + "enableComponents": [ + "SYSTEM_COMPONENTS" + ] + } + }, + "name": "kcc-attached-cluster-127", + "oidcConfig": { + "issuerUrl": "https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F" + }, + "platformVersion": "1.27.0-gke.2" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.cloud.gkemulticloud.v1.OperationMetadata", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "verb": "create" + }, + "name": "projects/${projectId}/locations/us-west1/operations/${operationID}" +} + +--- + +GET https://us-west1-gkemulticloud.googleapis.com/v1/projects/${projectId}/locations/us-west1/operations/${operationID}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "done": true, + "metadata": { + "@type": "type.googleapis.com/google.cloud.gkemulticloud.v1.OperationMetadata", + "createTime": "2024-04-01T12:34:56.123456Z", + "endTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "verb": "create" + }, + "name": "projects/${projectId}/locations/us-west1/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.cloud.gkemulticloud.v1.AttachedCluster", + "annotations": { + "key1": "value1", + "key2": "value2" + }, + "authorization": { + "adminUsers": [ + { + "username": "user@company.com" + } + ] + }, + "binaryAuthorization": { + "evaluationMode": "PROJECT_SINGLETON_POLICY_ENFORCE" + }, + "description": "Test attached cluster", + "distribution": "eks", + "fleet": { + "project": "projects/${projectNumber}" + }, + "loggingConfig": { + "componentConfig": { + "enableComponents": [ + "SYSTEM_COMPONENTS" + ] + } + }, + "name": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "oidcConfig": { + "issuerUrl": "https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F" + }, + "platformVersion": "1.27.0-gke.2", + "state": "RUNNING" + } +} + +--- + +GET https://us-west1-gkemulticloud.googleapis.com/v1/projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "annotations": { + "key1": "value1", + "key2": "value2" + }, + "authorization": { + "adminUsers": [ + { + "username": "user@company.com" + } + ] + }, + "binaryAuthorization": { + "evaluationMode": "PROJECT_SINGLETON_POLICY_ENFORCE" + }, + "description": "Test attached cluster", + "distribution": "eks", + "fleet": { + "project": "projects/${projectNumber}" + }, + "loggingConfig": { + "componentConfig": { + "enableComponents": [ + "SYSTEM_COMPONENTS" + ] + } + }, + "name": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "oidcConfig": { + "issuerUrl": "https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F" + }, + "platformVersion": "1.27.0-gke.2" +} + +--- + +PATCH https://us-west1-gkemulticloud.googleapis.com/v1/projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127?alt=json&updateMask=authorization.admin_users%2Clogging_config.component_config.enable_components%2Cmonitoring_config.managed_prometheus_config.enabled%2Cbinary_authorization.evaluation_mode%2Cdescription%2CplatformVersion%2Cannotations +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "annotations": { + "key1": "value1a", + "key2": "value2", + "key3": "value3" + }, + "authorization": { + "admin_users": [ + { + "username": "user1@company.com" + }, + { + "username": "user2@company.com" + } + ] + }, + "binaryAuthorization": { + "evaluationMode": "DISABLED" + }, + "description": "Test attached cluster update", + "fleet": { + "project": "projects/${projectNumber}" + }, + "loggingConfig": { + "componentConfig": { + "enableComponents": [ + "SYSTEM_COMPONENTS", + "WORKLOADS" + ] + } + }, + "monitoringConfig": { + "managedPrometheusConfig": { + "enabled": true + } + }, + "oidcConfig": { + "issuerUrl": "https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F" + }, + "platformVersion": "1.28.0-gke.2" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.cloud.gkemulticloud.v1.OperationMetadata", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "verb": "update" + }, + "name": "projects/${projectId}/locations/us-west1/operations/${operationID}" +} + +--- + +GET https://us-west1-gkemulticloud.googleapis.com/v1/projects/${projectId}/locations/us-west1/operations/${operationID}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "done": true, + "metadata": { + "@type": "type.googleapis.com/google.cloud.gkemulticloud.v1.OperationMetadata", + "createTime": "2024-04-01T12:34:56.123456Z", + "endTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "verb": "update" + }, + "name": "projects/${projectId}/locations/us-west1/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.cloud.gkemulticloud.v1.AttachedCluster", + "annotations": { + "key1": "value1a", + "key2": "value2", + "key3": "value3" + }, + "authorization": { + "adminUsers": [ + { + "username": "user1@company.com" + }, + { + "username": "user2@company.com" + } + ] + }, + "binaryAuthorization": { + "evaluationMode": "DISABLED" + }, + "description": "Test attached cluster update", + "distribution": "eks", + "fleet": { + "project": "projects/${projectNumber}" + }, + "loggingConfig": { + "componentConfig": { + "enableComponents": [ + "SYSTEM_COMPONENTS", + "WORKLOADS" + ] + } + }, + "monitoringConfig": { + "managedPrometheusConfig": { + "enabled": true + } + }, + "name": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "oidcConfig": { + "issuerUrl": "https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F" + }, + "platformVersion": "1.28.0-gke.2" + } +} + +--- + +GET https://us-west1-gkemulticloud.googleapis.com/v1/projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "annotations": { + "key1": "value1a", + "key2": "value2", + "key3": "value3" + }, + "authorization": { + "adminUsers": [ + { + "username": "user1@company.com" + }, + { + "username": "user2@company.com" + } + ] + }, + "binaryAuthorization": { + "evaluationMode": "DISABLED" + }, + "description": "Test attached cluster update", + "distribution": "eks", + "fleet": { + "project": "projects/${projectNumber}" + }, + "loggingConfig": { + "componentConfig": { + "enableComponents": [ + "SYSTEM_COMPONENTS", + "WORKLOADS" + ] + } + }, + "monitoringConfig": { + "managedPrometheusConfig": { + "enabled": true + } + }, + "name": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "oidcConfig": { + "issuerUrl": "https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F" + }, + "platformVersion": "1.28.0-gke.2" +} + +--- + +DELETE https://us-west1-gkemulticloud.googleapis.com/v1/projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127?alt=json&ignore_errors=true +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.cloud.gkemulticloud.v1.OperationMetadata", + "createTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "verb": "delete" + }, + "name": "projects/${projectId}/locations/us-west1/operations/${operationID}" +} + +--- + +GET https://us-west1-gkemulticloud.googleapis.com/v1/projects/${projectId}/locations/us-west1/operations/${operationID}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "done": true, + "metadata": { + "@type": "type.googleapis.com/google.cloud.gkemulticloud.v1.OperationMetadata", + "createTime": "2024-04-01T12:34:56.123456Z", + "endTime": "2024-04-01T12:34:56.123456Z", + "target": "projects/${projectId}/locations/us-west1/attachedClusters/kcc-attached-cluster-127", + "verb": "delete" + }, + "name": "projects/${projectId}/locations/us-west1/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.protobuf.Empty" + } +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/create.yaml b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/create.yaml new file mode 100644 index 0000000000..0d169198cb --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/create.yaml @@ -0,0 +1,46 @@ +# Copyright 2023 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: containerattached.cnrm.cloud.google.com/v1beta1 +kind: ContainerAttachedCluster +metadata: + name: containerattachedcluster-${uniqueId} +spec: + # The resourceID needs to match the name of the eks cluster to be attached + resourceID: kcc-attached-cluster-127 + annotations: + key1: "value1" + key2: "value2" + authorization: + adminUsers: ["user@company.com"] + binaryAuthorization: + evaluationMode: "PROJECT_SINGLETON_POLICY_ENFORCE" + location: us-west1 + projectRef: + external: ${KCC_ATTACHED_CLUSTER_TEST_PROJECT} + description: "Test attached cluster" + distribution: "eks" + oidcConfig: + issuerUrl: https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F + platformVersion: 1.27.0-gke.2 + fleet: + projectRef: + name: project-${uniqueId} + loggingConfig: + componentConfig: + enableComponents: ["SYSTEM_COMPONENTS"] + monitoringConfig: + managedPrometheusConfig: + enabled: false + deletionPolicy: "DELETE_IGNORE_ERRORS" \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/dependencies.yaml b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/dependencies.yaml new file mode 100644 index 0000000000..c71925074f --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/dependencies.yaml @@ -0,0 +1,25 @@ +# Copyright 2023 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1 +kind: Project +metadata: + name: project-${uniqueId} + annotations: + cnrm.cloud.google.com/deletion-policy: abandon +spec: + resourceID: ${KCC_ATTACHED_CLUSTER_TEST_PROJECT} + organizationRef: + external: ${TEST_ORG_ID} + name: ${KCC_ATTACHED_CLUSTER_TEST_PROJECT} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/update.yaml b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/update.yaml new file mode 100644 index 0000000000..3ffa8aece9 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/containerattached/v1beta1/containerattachedclusterfull/update.yaml @@ -0,0 +1,47 @@ +# Copyright 2023 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: containerattached.cnrm.cloud.google.com/v1beta1 +kind: ContainerAttachedCluster +metadata: + name: containerattachedcluster-${uniqueId} +spec: + # The resourceID needs to match the name of the eks cluster to be attached + resourceID: kcc-attached-cluster-127 + annotations: + key1: "value1a" + key2: "value2" + key3: "value3" + authorization: + adminUsers: ["user1@company.com", "user2@company.com"] + binaryAuthorization: + evaluationMode: "DISABLED" + location: us-west1 + projectRef: + external: ${KCC_ATTACHED_CLUSTER_TEST_PROJECT} + description: "Test attached cluster update" + distribution: "eks" + oidcConfig: + issuerUrl: https://oidc.eks.us-west-2.amazonaws.com/id/A115FE1C770C2452C75219524036FC0F + platformVersion: 1.28.0-gke.2 + fleet: + projectRef: + name: project-${uniqueId} + loggingConfig: + componentConfig: + enableComponents: ["SYSTEM_COMPONENTS", "WORKLOADS"] + monitoringConfig: + managedPrometheusConfig: + enabled: true + deletionPolicy: "DELETE_IGNORE_ERRORS" \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob-direct/_generated_object_batchdataflowflextemplatejob-direct.golden.yaml b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob-direct/_generated_object_batchdataflowflextemplatejob-direct.golden.yaml new file mode 100644 index 0000000000..4a0768448c --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob-direct/_generated_object_batchdataflowflextemplatejob-direct.golden.yaml @@ -0,0 +1,34 @@ +apiVersion: dataflow.cnrm.cloud.google.com/v1beta1 +kind: DataflowFlexTemplateJob +metadata: + annotations: + alpha.cnrm.cloud.google.com/reconciler: direct + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/on-delete: cancel + cnrm.cloud.google.com/project-id: ${projectId} + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 1 + labels: + cnrm-test: "true" + name: dataflowflextemplatejob-${uniqueId} + namespace: ${uniqueId} +spec: + containerSpecGcsPath: gs://dataflow-templates/2022-10-03-00_RC00/flex/File_Format_Conversion + parameters: + inputFileFormat: csv + inputFileSpec: gs://config-connector-samples/dataflowflextemplate/numbertest.csv + outputBucket: gs://storagebucket-${uniqueId} + outputFileFormat: avro + schema: gs://config-connector-samples/dataflowflextemplate/numbers.avsc + region: us-central1 +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + jobId: ${jobID} + observedGeneration: 1 diff --git a/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob-direct/_http.log b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob-direct/_http.log new file mode 100644 index 0000000000..337de31165 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob-direct/_http.log @@ -0,0 +1,1041 @@ +GET https://storage.googleapis.com/storage/v1/b/storagebucket-${uniqueId}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: no-cache, no-store, max-age=0, must-revalidate +Content-Type: application/json; charset=UTF-8 +Expires: Mon, 01 Jan 1990 00:00:00 GMT +Pragma: no-cache +Server: UploadServer +Vary: Origin +Vary: X-Origin + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "The specified bucket does not exist.", + "reason": "notFound" + } + ], + "message": "The specified bucket does not exist." + } +} + +--- + +POST https://storage.googleapis.com/storage/v1/b?alt=json&prettyPrint=false&project=${projectId} +Content-Type: application/json +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "iamConfiguration": { + "uniformBucketLevelAccess": { + "enabled": false + } + }, + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "lifecycle": { + "rule": [] + }, + "name": "storagebucket-${uniqueId}", + "storageClass": "STANDARD" +} + +200 OK +Cache-Control: no-cache, no-store, max-age=0, must-revalidate +Content-Type: application/json; charset=UTF-8 +Expires: Mon, 01 Jan 1990 00:00:00 GMT +Pragma: no-cache +Server: UploadServer +Vary: Origin +Vary: X-Origin + +{ + "etag": "abcdef0123A=", + "iamConfiguration": { + "bucketPolicyOnly": { + "enabled": false + }, + "publicAccessPrevention": "inherited", + "uniformBucketLevelAccess": { + "enabled": false + } + }, + "id": "000000000000000000000", + "kind": "storage#bucket", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "location": "US", + "locationType": "multi-region", + "metageneration": "1", + "name": "storagebucket-${uniqueId}", + "projectNumber": "${projectNumber}", + "rpo": "DEFAULT", + "selfLink": "https://www.googleapis.com/storage/v1/b/storagebucket-${uniqueId}", + "softDeletePolicy": { + "effectiveTime": "2024-04-01T12:34:56.123456Z", + "retentionDurationSeconds": "604800" + }, + "storageClass": "STANDARD", + "timeCreated": "2024-04-01T12:34:56.123456Z", + "updated": "2024-04-01T12:34:56.123456Z" +} + +--- + +GET https://storage.googleapis.com/storage/v1/b/storagebucket-${uniqueId}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private, max-age=0, must-revalidate, no-transform +Content-Type: application/json; charset=UTF-8 +Expires: {now+0m} +Server: UploadServer +Vary: Origin +Vary: X-Origin + +{ + "etag": "abcdef0123A=", + "iamConfiguration": { + "bucketPolicyOnly": { + "enabled": false + }, + "publicAccessPrevention": "inherited", + "uniformBucketLevelAccess": { + "enabled": false + } + }, + "id": "000000000000000000000", + "kind": "storage#bucket", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "location": "US", + "locationType": "multi-region", + "metageneration": "1", + "name": "storagebucket-${uniqueId}", + "projectNumber": "${projectNumber}", + "rpo": "DEFAULT", + "selfLink": "https://www.googleapis.com/storage/v1/b/storagebucket-${uniqueId}", + "softDeletePolicy": { + "effectiveTime": "2024-04-01T12:34:56.123456Z", + "retentionDurationSeconds": "604800" + }, + "storageClass": "STANDARD", + "timeCreated": "2024-04-01T12:34:56.123456Z", + "updated": "2024-04-01T12:34:56.123456Z" +} + +--- + +POST https://dataflow.googleapis.com/v1b3/projects/${projectId}/locations/us-central1/flexTemplates:launch?%24alt=json%3Benum-encoding%3Dint +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project_id=${projectId}&location=us-central1 + +{ + "launchParameter": { + "containerSpecGcsPath": "gs://dataflow-templates/2022-10-03-00_RC00/flex/File_Format_Conversion", + "environment": {}, + "jobName": "dataflowflextemplatejob-${uniqueId}", + "parameters": { + "inputFileFormat": "csv", + "inputFileSpec": "gs://config-connector-samples/dataflowflextemplate/numbertest.csv", + "outputBucket": "gs://storagebucket-${uniqueId}", + "outputFileFormat": "avro", + "schema": "gs://config-connector-samples/dataflowflextemplate/numbers.avsc" + } + }, + "location": "us-central1", + "projectId": "${projectId}" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "job": { + "createTime": "2024-04-01T12:34:56.123456Z", + "currentStateTime": "1970-01-01T00:00:00Z", + "id": "${jobID}", + "location": "us-central1", + "name": "dataflowflextemplatejob-${uniqueId}", + "projectId": "${projectId}", + "startTime": "2024-04-01T12:34:56.123456Z" + } +} + +--- + +GET https://dataflow.googleapis.com/v1b3/projects/${projectId}/locations/us-central1/jobs/${jobID}?%24alt=json%3Benum-encoding%3Dint&view=JOB_VIEW_SUMMARY +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project_id=${projectId}&location=us-central1&job_id=${jobID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "currentState": 11, + "currentStateTime": "2024-04-01T12:34:56.123456Z", + "environment": { + "dataset": "bigquery.googleapis.com/cloud_dataflow" + }, + "id": "000000000000000000000", + "labels": { + "goog-dataflow-provided-template-name": "file_format_conversion", + "goog-dataflow-provided-template-type": "flex" + }, + "location": "us-central1", + "name": "dataflowflextemplatejob-${uniqueId}", + "pipelineDescription": { + "removed": "simplicity" + }, + "projectId": "${projectId}", + "startTime": "2024-04-01T12:34:56.123456Z" +} + +--- + +GET https://dataflow.googleapis.com/v1b3/projects/${projectId}/locations/us-central1/jobs/${jobID}?%24alt=json%3Benum-encoding%3Dint&view=JOB_VIEW_SUMMARY +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project_id=${projectId}&location=us-central1&job_id=${jobID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "currentState": 9, + "currentStateTime": "2024-04-01T12:34:56.123456Z", + "environment": { + "dataset": "bigquery.googleapis.com/cloud_dataflow", + "experiments": [ + "auto_google_template_runner_v2", + "auto_high_core_runner_v2", + "auto_runner_v2_min_sdk=2.54.0", + "configure_shuffle_service_addresses_in_control_plane", + "delayed_launch", + "disable_baggins_exp", + "disable_primeflex", + "disable_runner_v2_reason=java_job_google_template", + "ek_regions=", + "enable_always_on_exception_sampling", + "enable_async_job_creation", + "enable_billing_v_1_5", + "enable_cloud_permissions_checking", + "enable_cmek_org_policy_check", + "enable_compute_default_service_account_org_policy", + "enable_data_sampling_telemetry", + "enable_dataprep_new_billing", + "enable_fnapi_multimap_side_input_bulk_read", + "enable_memory_sampler", + "enable_oom_sampler", + "enable_recommendations", + "enable_remote_image_ping", + "enable_secure_boot", + "enable_throttled_based_rescaling", + "enable_worker_cloud_monitoring_exporter", + "enable_worker_disk_cloud_monitoring", + "enable_worker_memory_cloud_monitoring", + "enable_zonal_outage_aware_routing", + "limit_preemptible_worker_pct", + "limit_resizing_by_cpu_util", + "min_sdk_version_to_reject_worker_in_different_region_than_service=2.44.0", + "override_controller_service_account", + "primeflex_slow_start_pct=5", + "primeflex_slow_start_seconds=3600", + "regional_physical_zone_separation_enabled", + "shuffle_mode=auto", + "shuffle_service_address_type=DIRECTPATH_WITH_CFE_FALLBACK", + "sideinput_io_metrics", + "use_dataflow_service_account_in_igm", + "use_e2_for_default_machine_type_worker_regions=africa-south1,europe-north2,europe-southwest1,europe-west10,europe-west12,europe-west8,europe-west9,me-central1,me-central2,me-west1,northamerica-south1,southamerica-west1,us-east10,us-east5,us-east7,us-south1,us-west8", + "use_job_admission_controller", + "use_multi_hop_delegation", + "use_templates_regional_bucket", + "use_worker_zone_chooser_by_default" + ], + "sdkPipelineOptions": { + "display_data": [], + "options": { + "apiRootUrl": "https://dataflow.googleapis.com/", + "appName": "FileFormatConversion", + "autoscalingAlgorithm": null, + "containsHeaders": false, + "credentialFactoryClass": "org.apache.beam.sdk.extensions.gcp.auth.GcpCredentialFactory", + "csvFileEncoding": "UTF-8", + "csvFormat": "Default", + "dataflowEndpoint": "", + "dataflowKmsKey": null, + "dataflowServiceOptions": null, + "dataflowWorkerJar": null, + "defaultEnvironmentConfig": null, + "defaultEnvironmentType": null, + "delimiter": ",", + "diskSizeGb": 0, + "enableCloudDebugger": false, + "enableStreamingEngine": false, + "environmentOptions": null, + "experiments": [ + "disable_runner_v2_reason=java_job_google_template", + "enable_always_on_exception_sampling" + ], + "filesToStage": [ + "/template/file-format-conversion/file-format-conversion.jar" + ], + "gcpTempLocation": "gs://dataflow-staging-us-central1-${projectNumber}/tmp", + "gcsPerformanceMetrics": false, + "gcsUploadBufferSizeBytes": null, + "googleApiTrace": null, + "hotKeyLoggingEnabled": false, + "inputFileFormat": "csv", + "inputFileSpec": "gs://config-connector-samples/dataflowflextemplate/numbertest.csv", + "jobName": "dataflowflextemplatejob-${uniqueId}", + "labels": { + "goog-dataflow-provided-template-name": "file_format_conversion", + "goog-dataflow-provided-template-type": "flex" + }, + "logDetailedCsvConversionErrors": false, + "maxNumWorkers": 0, + "network": null, + "numShards": 0, + "numWorkers": 0, + "numberOfWorkerHarnessThreads": 0, + "optionsId": 0, + "outputBucket": "gs://storagebucket-${uniqueId}", + "outputFileFormat": "avro", + "outputFilePrefix": "output", + "overrideWindmillBinary": null, + "pathValidatorClass": "org.apache.beam.sdk.extensions.gcp.storage.GcsPathValidator", + "pipelineUrl": "${pipelineUrl}", + "project": "${projectId}", + "recordJfrOnGcThrashing": false, + "region": "us-central1", + "resourceHints": [], + "runner": "org.apache.beam.runners.dataflow.DataflowRunner", + "saveProfilesToGcs": null, + "schema": "gs://config-connector-samples/dataflowflextemplate/numbers.avsc", + "sdkContainerImage": null, + "sdkHarnessContainerImageOverrides": null, + "serviceAccount": "${projectNumber}-compute@developer.gserviceaccount.com", + "stableUniqueNames": "WARNING", + "stagerClass": "org.apache.beam.runners.dataflow.util.GcsStager", + "stagingLocation": "gs://dataflow-staging-us-central1-${projectNumber}/staging", + "streaming": false, + "subnetwork": null, + "tempLocation": "gs://dataflow-staging-us-central1-${projectNumber}/tmp", + "templateLocation": "gs://dataflow-staging-us-central1-${projectNumber}/staging/template_launches/${jobID}/job_object", + "userAgent": "Apache_Beam_SDK_for_Java/2.41.0(JRE_11_environment)", + "workerDiskType": null, + "workerHarnessContainerImage": null, + "workerMachineType": null, + "workerRegion": null, + "zone": null + } + }, + "serviceAccountEmail": "${projectNumber}-compute@developer.gserviceaccount.com", + "shuffleMode": 2, + "tempStoragePrefix": "storage.googleapis.com/dataflow-staging-us-central1-${projectNumber}/tmp", + "userAgent": { + "removed": "simplicity" + }, + "version": { + "removed": "simplicity" + }, + "workerPools": [] + }, + "id": "000000000000000000000", + "jobMetadata": { + "removed": "simplicity" + }, + "labels": { + "goog-dataflow-provided-template-name": "file_format_conversion", + "goog-dataflow-provided-template-type": "flex" + }, + "location": "us-central1", + "name": "dataflowflextemplatejob-${uniqueId}", + "pipelineDescription": { + "removed": "simplicity" + }, + "projectId": "${projectId}", + "startTime": "2024-04-01T12:34:56.123456Z", + "steps": [], + "type": 1 +} + +--- + +GET https://dataflow.googleapis.com/v1b3/projects/${projectId}/locations/us-central1/jobs/${jobID}?%24alt=json%3Benum-encoding%3Dint&view=JOB_VIEW_SUMMARY +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project_id=${projectId}&location=us-central1&job_id=${jobID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "currentState": 2, + "currentStateTime": "2024-04-01T12:34:56.123456Z", + "environment": { + "dataset": "bigquery.googleapis.com/cloud_dataflow", + "experiments": [ + "auto_google_template_runner_v2", + "auto_high_core_runner_v2", + "auto_runner_v2_min_sdk=2.54.0", + "configure_shuffle_service_addresses_in_control_plane", + "delayed_launch", + "disable_baggins_exp", + "disable_primeflex", + "disable_runner_v2_reason=java_job_google_template", + "ek_regions=", + "enable_always_on_exception_sampling", + "enable_async_job_creation", + "enable_billing_v_1_5", + "enable_cloud_permissions_checking", + "enable_cmek_org_policy_check", + "enable_compute_default_service_account_org_policy", + "enable_data_sampling_telemetry", + "enable_dataprep_new_billing", + "enable_fnapi_multimap_side_input_bulk_read", + "enable_memory_sampler", + "enable_oom_sampler", + "enable_recommendations", + "enable_remote_image_ping", + "enable_secure_boot", + "enable_throttled_based_rescaling", + "enable_worker_cloud_monitoring_exporter", + "enable_worker_disk_cloud_monitoring", + "enable_worker_memory_cloud_monitoring", + "enable_zonal_outage_aware_routing", + "limit_preemptible_worker_pct", + "limit_resizing_by_cpu_util", + "min_sdk_version_to_reject_worker_in_different_region_than_service=2.44.0", + "override_controller_service_account", + "primeflex_slow_start_pct=5", + "primeflex_slow_start_seconds=3600", + "regional_physical_zone_separation_enabled", + "shuffle_mode=auto", + "shuffle_service_address_type=DIRECTPATH_WITH_CFE_FALLBACK", + "sideinput_io_metrics", + "use_dataflow_service_account_in_igm", + "use_e2_for_default_machine_type_worker_regions=africa-south1,europe-north2,europe-southwest1,europe-west10,europe-west12,europe-west8,europe-west9,me-central1,me-central2,me-west1,northamerica-south1,southamerica-west1,us-east10,us-east5,us-east7,us-south1,us-west8", + "use_job_admission_controller", + "use_multi_hop_delegation", + "use_templates_regional_bucket", + "use_worker_zone_chooser_by_default" + ], + "sdkPipelineOptions": { + "display_data": [], + "options": { + "apiRootUrl": "https://dataflow.googleapis.com/", + "appName": "FileFormatConversion", + "autoscalingAlgorithm": null, + "containsHeaders": false, + "credentialFactoryClass": "org.apache.beam.sdk.extensions.gcp.auth.GcpCredentialFactory", + "csvFileEncoding": "UTF-8", + "csvFormat": "Default", + "dataflowEndpoint": "", + "dataflowKmsKey": null, + "dataflowServiceOptions": null, + "dataflowWorkerJar": null, + "defaultEnvironmentConfig": null, + "defaultEnvironmentType": null, + "delimiter": ",", + "diskSizeGb": 0, + "enableCloudDebugger": false, + "enableStreamingEngine": false, + "environmentOptions": null, + "experiments": [ + "disable_runner_v2_reason=java_job_google_template", + "enable_always_on_exception_sampling" + ], + "filesToStage": [ + "/template/file-format-conversion/file-format-conversion.jar" + ], + "gcpTempLocation": "gs://dataflow-staging-us-central1-${projectNumber}/tmp", + "gcsPerformanceMetrics": false, + "gcsUploadBufferSizeBytes": null, + "googleApiTrace": null, + "hotKeyLoggingEnabled": false, + "inputFileFormat": "csv", + "inputFileSpec": "gs://config-connector-samples/dataflowflextemplate/numbertest.csv", + "jobName": "dataflowflextemplatejob-${uniqueId}", + "labels": { + "goog-dataflow-provided-template-name": "file_format_conversion", + "goog-dataflow-provided-template-type": "flex" + }, + "logDetailedCsvConversionErrors": false, + "maxNumWorkers": 0, + "network": null, + "numShards": 0, + "numWorkers": 0, + "numberOfWorkerHarnessThreads": 0, + "optionsId": 0, + "outputBucket": "gs://storagebucket-${uniqueId}", + "outputFileFormat": "avro", + "outputFilePrefix": "output", + "overrideWindmillBinary": null, + "pathValidatorClass": "org.apache.beam.sdk.extensions.gcp.storage.GcsPathValidator", + "pipelineUrl": "${pipelineUrl}", + "project": "${projectId}", + "recordJfrOnGcThrashing": false, + "region": "us-central1", + "resourceHints": [], + "runner": "org.apache.beam.runners.dataflow.DataflowRunner", + "saveProfilesToGcs": null, + "schema": "gs://config-connector-samples/dataflowflextemplate/numbers.avsc", + "sdkContainerImage": null, + "sdkHarnessContainerImageOverrides": null, + "serviceAccount": "${projectNumber}-compute@developer.gserviceaccount.com", + "stableUniqueNames": "WARNING", + "stagerClass": "org.apache.beam.runners.dataflow.util.GcsStager", + "stagingLocation": "gs://dataflow-staging-us-central1-${projectNumber}/staging", + "streaming": false, + "subnetwork": null, + "tempLocation": "gs://dataflow-staging-us-central1-${projectNumber}/tmp", + "templateLocation": "gs://dataflow-staging-us-central1-${projectNumber}/staging/template_launches/${jobID}/job_object", + "userAgent": "Apache_Beam_SDK_for_Java/2.41.0(JRE_11_environment)", + "workerDiskType": null, + "workerHarnessContainerImage": null, + "workerMachineType": null, + "workerRegion": null, + "zone": null + } + }, + "serviceAccountEmail": "${projectNumber}-compute@developer.gserviceaccount.com", + "shuffleMode": 2, + "tempStoragePrefix": "storage.googleapis.com/dataflow-staging-us-central1-${projectNumber}/tmp", + "userAgent": { + "removed": "simplicity" + }, + "version": { + "removed": "simplicity" + }, + "workerPools": [] + }, + "id": "000000000000000000000", + "jobMetadata": { + "removed": "simplicity" + }, + "labels": { + "goog-dataflow-provided-template-name": "file_format_conversion", + "goog-dataflow-provided-template-type": "flex" + }, + "location": "us-central1", + "name": "dataflowflextemplatejob-${uniqueId}", + "pipelineDescription": { + "removed": "simplicity" + }, + "projectId": "${projectId}", + "stageStates": [], + "startTime": "2024-04-01T12:34:56.123456Z", + "steps": [], + "type": 1 +} + +--- + +PUT https://dataflow.googleapis.com/v1b3/projects/${projectId}/locations/us-central1/jobs/${jobID}?%24alt=json%3Benum-encoding%3Dint +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project_id=${projectId}&location=us-central1&job_id=${jobID} + +{ + "requestedState": 5 +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "type": 1 +} + +--- + +GET https://dataflow.googleapis.com/v1b3/projects/${projectId}/locations/us-central1/jobs/${jobID}?%24alt=json%3Benum-encoding%3Dint&view=JOB_VIEW_SUMMARY +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project_id=${projectId}&location=us-central1&job_id=${jobID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "currentState": 10, + "currentStateTime": "2024-04-01T12:34:56.123456Z", + "environment": { + "dataset": "bigquery.googleapis.com/cloud_dataflow", + "experiments": [ + "auto_google_template_runner_v2", + "auto_high_core_runner_v2", + "auto_runner_v2_min_sdk=2.54.0", + "configure_shuffle_service_addresses_in_control_plane", + "delayed_launch", + "disable_baggins_exp", + "disable_primeflex", + "disable_runner_v2_reason=java_job_google_template", + "ek_regions=", + "enable_always_on_exception_sampling", + "enable_async_job_creation", + "enable_billing_v_1_5", + "enable_cloud_permissions_checking", + "enable_cmek_org_policy_check", + "enable_compute_default_service_account_org_policy", + "enable_data_sampling_telemetry", + "enable_dataprep_new_billing", + "enable_fnapi_multimap_side_input_bulk_read", + "enable_memory_sampler", + "enable_oom_sampler", + "enable_recommendations", + "enable_remote_image_ping", + "enable_secure_boot", + "enable_throttled_based_rescaling", + "enable_worker_cloud_monitoring_exporter", + "enable_worker_disk_cloud_monitoring", + "enable_worker_memory_cloud_monitoring", + "enable_zonal_outage_aware_routing", + "limit_preemptible_worker_pct", + "limit_resizing_by_cpu_util", + "min_sdk_version_to_reject_worker_in_different_region_than_service=2.44.0", + "override_controller_service_account", + "primeflex_slow_start_pct=5", + "primeflex_slow_start_seconds=3600", + "regional_physical_zone_separation_enabled", + "shuffle_mode=auto", + "shuffle_service_address_type=DIRECTPATH_WITH_CFE_FALLBACK", + "sideinput_io_metrics", + "use_dataflow_service_account_in_igm", + "use_e2_for_default_machine_type_worker_regions=africa-south1,europe-north2,europe-southwest1,europe-west10,europe-west12,europe-west8,europe-west9,me-central1,me-central2,me-west1,northamerica-south1,southamerica-west1,us-east10,us-east5,us-east7,us-south1,us-west8", + "use_job_admission_controller", + "use_multi_hop_delegation", + "use_templates_regional_bucket", + "use_worker_zone_chooser_by_default" + ], + "sdkPipelineOptions": { + "display_data": [], + "options": { + "apiRootUrl": "https://dataflow.googleapis.com/", + "appName": "FileFormatConversion", + "autoscalingAlgorithm": null, + "containsHeaders": false, + "credentialFactoryClass": "org.apache.beam.sdk.extensions.gcp.auth.GcpCredentialFactory", + "csvFileEncoding": "UTF-8", + "csvFormat": "Default", + "dataflowEndpoint": "", + "dataflowKmsKey": null, + "dataflowServiceOptions": null, + "dataflowWorkerJar": null, + "defaultEnvironmentConfig": null, + "defaultEnvironmentType": null, + "delimiter": ",", + "diskSizeGb": 0, + "enableCloudDebugger": false, + "enableStreamingEngine": false, + "environmentOptions": null, + "experiments": [ + "disable_runner_v2_reason=java_job_google_template", + "enable_always_on_exception_sampling" + ], + "filesToStage": [ + "/template/file-format-conversion/file-format-conversion.jar" + ], + "gcpTempLocation": "gs://dataflow-staging-us-central1-${projectNumber}/tmp", + "gcsPerformanceMetrics": false, + "gcsUploadBufferSizeBytes": null, + "googleApiTrace": null, + "hotKeyLoggingEnabled": false, + "inputFileFormat": "csv", + "inputFileSpec": "gs://config-connector-samples/dataflowflextemplate/numbertest.csv", + "jobName": "dataflowflextemplatejob-${uniqueId}", + "labels": { + "goog-dataflow-provided-template-name": "file_format_conversion", + "goog-dataflow-provided-template-type": "flex" + }, + "logDetailedCsvConversionErrors": false, + "maxNumWorkers": 0, + "network": null, + "numShards": 0, + "numWorkers": 0, + "numberOfWorkerHarnessThreads": 0, + "optionsId": 0, + "outputBucket": "gs://storagebucket-${uniqueId}", + "outputFileFormat": "avro", + "outputFilePrefix": "output", + "overrideWindmillBinary": null, + "pathValidatorClass": "org.apache.beam.sdk.extensions.gcp.storage.GcsPathValidator", + "pipelineUrl": "${pipelineUrl}", + "project": "${projectId}", + "recordJfrOnGcThrashing": false, + "region": "us-central1", + "resourceHints": [], + "runner": "org.apache.beam.runners.dataflow.DataflowRunner", + "saveProfilesToGcs": null, + "schema": "gs://config-connector-samples/dataflowflextemplate/numbers.avsc", + "sdkContainerImage": null, + "sdkHarnessContainerImageOverrides": null, + "serviceAccount": "${projectNumber}-compute@developer.gserviceaccount.com", + "stableUniqueNames": "WARNING", + "stagerClass": "org.apache.beam.runners.dataflow.util.GcsStager", + "stagingLocation": "gs://dataflow-staging-us-central1-${projectNumber}/staging", + "streaming": false, + "subnetwork": null, + "tempLocation": "gs://dataflow-staging-us-central1-${projectNumber}/tmp", + "templateLocation": "gs://dataflow-staging-us-central1-${projectNumber}/staging/template_launches/${jobID}/job_object", + "userAgent": "Apache_Beam_SDK_for_Java/2.41.0(JRE_11_environment)", + "workerDiskType": null, + "workerHarnessContainerImage": null, + "workerMachineType": null, + "workerRegion": null, + "zone": null + } + }, + "serviceAccountEmail": "${projectNumber}-compute@developer.gserviceaccount.com", + "shuffleMode": 2, + "tempStoragePrefix": "storage.googleapis.com/dataflow-staging-us-central1-${projectNumber}/tmp", + "userAgent": { + "removed": "simplicity" + }, + "version": { + "removed": "simplicity" + }, + "workerPools": [] + }, + "id": "000000000000000000000", + "jobMetadata": { + "removed": "simplicity" + }, + "labels": { + "goog-dataflow-provided-template-name": "file_format_conversion", + "goog-dataflow-provided-template-type": "flex" + }, + "location": "us-central1", + "name": "dataflowflextemplatejob-${uniqueId}", + "pipelineDescription": { + "removed": "simplicity" + }, + "projectId": "${projectId}", + "requestedState": 5, + "stageStates": [], + "startTime": "2024-04-01T12:34:56.123456Z", + "steps": [], + "type": 1 +} + +--- + +GET https://dataflow.googleapis.com/v1b3/projects/${projectId}/locations/us-central1/jobs/${jobID}?%24alt=json%3Benum-encoding%3Dint&view=JOB_VIEW_SUMMARY +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: project_id=${projectId}&location=us-central1&job_id=${jobID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "createTime": "2024-04-01T12:34:56.123456Z", + "currentState": 5, + "currentStateTime": "2024-04-01T12:34:56.123456Z", + "environment": { + "dataset": "bigquery.googleapis.com/cloud_dataflow", + "experiments": [ + "auto_google_template_runner_v2", + "auto_high_core_runner_v2", + "auto_runner_v2_min_sdk=2.54.0", + "configure_shuffle_service_addresses_in_control_plane", + "delayed_launch", + "disable_baggins_exp", + "disable_primeflex", + "disable_runner_v2_reason=java_job_google_template", + "ek_regions=", + "enable_always_on_exception_sampling", + "enable_async_job_creation", + "enable_billing_v_1_5", + "enable_cloud_permissions_checking", + "enable_cmek_org_policy_check", + "enable_compute_default_service_account_org_policy", + "enable_data_sampling_telemetry", + "enable_dataprep_new_billing", + "enable_fnapi_multimap_side_input_bulk_read", + "enable_memory_sampler", + "enable_oom_sampler", + "enable_recommendations", + "enable_remote_image_ping", + "enable_secure_boot", + "enable_throttled_based_rescaling", + "enable_worker_cloud_monitoring_exporter", + "enable_worker_disk_cloud_monitoring", + "enable_worker_memory_cloud_monitoring", + "enable_zonal_outage_aware_routing", + "limit_preemptible_worker_pct", + "limit_resizing_by_cpu_util", + "min_sdk_version_to_reject_worker_in_different_region_than_service=2.44.0", + "override_controller_service_account", + "primeflex_slow_start_pct=5", + "primeflex_slow_start_seconds=3600", + "regional_physical_zone_separation_enabled", + "shuffle_mode=auto", + "shuffle_service_address_type=DIRECTPATH_WITH_CFE_FALLBACK", + "sideinput_io_metrics", + "use_dataflow_service_account_in_igm", + "use_e2_for_default_machine_type_worker_regions=africa-south1,europe-north2,europe-southwest1,europe-west10,europe-west12,europe-west8,europe-west9,me-central1,me-central2,me-west1,northamerica-south1,southamerica-west1,us-east10,us-east5,us-east7,us-south1,us-west8", + "use_job_admission_controller", + "use_multi_hop_delegation", + "use_templates_regional_bucket", + "use_worker_zone_chooser_by_default" + ], + "sdkPipelineOptions": { + "display_data": [], + "options": { + "apiRootUrl": "https://dataflow.googleapis.com/", + "appName": "FileFormatConversion", + "autoscalingAlgorithm": null, + "containsHeaders": false, + "credentialFactoryClass": "org.apache.beam.sdk.extensions.gcp.auth.GcpCredentialFactory", + "csvFileEncoding": "UTF-8", + "csvFormat": "Default", + "dataflowEndpoint": "", + "dataflowKmsKey": null, + "dataflowServiceOptions": null, + "dataflowWorkerJar": null, + "defaultEnvironmentConfig": null, + "defaultEnvironmentType": null, + "delimiter": ",", + "diskSizeGb": 0, + "enableCloudDebugger": false, + "enableStreamingEngine": false, + "environmentOptions": null, + "experiments": [ + "disable_runner_v2_reason=java_job_google_template", + "enable_always_on_exception_sampling" + ], + "filesToStage": [ + "/template/file-format-conversion/file-format-conversion.jar" + ], + "gcpTempLocation": "gs://dataflow-staging-us-central1-${projectNumber}/tmp", + "gcsPerformanceMetrics": false, + "gcsUploadBufferSizeBytes": null, + "googleApiTrace": null, + "hotKeyLoggingEnabled": false, + "inputFileFormat": "csv", + "inputFileSpec": "gs://config-connector-samples/dataflowflextemplate/numbertest.csv", + "jobName": "dataflowflextemplatejob-${uniqueId}", + "labels": { + "goog-dataflow-provided-template-name": "file_format_conversion", + "goog-dataflow-provided-template-type": "flex" + }, + "logDetailedCsvConversionErrors": false, + "maxNumWorkers": 0, + "network": null, + "numShards": 0, + "numWorkers": 0, + "numberOfWorkerHarnessThreads": 0, + "optionsId": 0, + "outputBucket": "gs://storagebucket-${uniqueId}", + "outputFileFormat": "avro", + "outputFilePrefix": "output", + "overrideWindmillBinary": null, + "pathValidatorClass": "org.apache.beam.sdk.extensions.gcp.storage.GcsPathValidator", + "pipelineUrl": "${pipelineUrl}", + "project": "${projectId}", + "recordJfrOnGcThrashing": false, + "region": "us-central1", + "resourceHints": [], + "runner": "org.apache.beam.runners.dataflow.DataflowRunner", + "saveProfilesToGcs": null, + "schema": "gs://config-connector-samples/dataflowflextemplate/numbers.avsc", + "sdkContainerImage": null, + "sdkHarnessContainerImageOverrides": null, + "serviceAccount": "${projectNumber}-compute@developer.gserviceaccount.com", + "stableUniqueNames": "WARNING", + "stagerClass": "org.apache.beam.runners.dataflow.util.GcsStager", + "stagingLocation": "gs://dataflow-staging-us-central1-${projectNumber}/staging", + "streaming": false, + "subnetwork": null, + "tempLocation": "gs://dataflow-staging-us-central1-${projectNumber}/tmp", + "templateLocation": "gs://dataflow-staging-us-central1-${projectNumber}/staging/template_launches/${jobID}/job_object", + "userAgent": "Apache_Beam_SDK_for_Java/2.41.0(JRE_11_environment)", + "workerDiskType": null, + "workerHarnessContainerImage": null, + "workerMachineType": null, + "workerRegion": null, + "zone": null + } + }, + "serviceAccountEmail": "${projectNumber}-compute@developer.gserviceaccount.com", + "shuffleMode": 2, + "tempStoragePrefix": "storage.googleapis.com/dataflow-staging-us-central1-${projectNumber}/tmp", + "userAgent": { + "removed": "simplicity" + }, + "version": { + "removed": "simplicity" + }, + "workerPools": [] + }, + "id": "000000000000000000000", + "jobMetadata": { + "removed": "simplicity" + }, + "labels": { + "goog-dataflow-provided-template-name": "file_format_conversion", + "goog-dataflow-provided-template-type": "flex" + }, + "location": "us-central1", + "name": "dataflowflextemplatejob-${uniqueId}", + "pipelineDescription": { + "removed": "simplicity" + }, + "projectId": "${projectId}", + "stageStates": [], + "startTime": "2024-04-01T12:34:56.123456Z", + "steps": [], + "type": 1 +} + +--- + +GET https://storage.googleapis.com/storage/v1/b/storagebucket-${uniqueId}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private, max-age=0, must-revalidate, no-transform +Content-Type: application/json; charset=UTF-8 +Expires: {now+0m} +Server: UploadServer +Vary: Origin +Vary: X-Origin + +{ + "etag": "abcdef0123A=", + "iamConfiguration": { + "bucketPolicyOnly": { + "enabled": false + }, + "publicAccessPrevention": "inherited", + "uniformBucketLevelAccess": { + "enabled": false + } + }, + "id": "000000000000000000000", + "kind": "storage#bucket", + "labels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + }, + "location": "US", + "locationType": "multi-region", + "metageneration": "1", + "name": "storagebucket-${uniqueId}", + "projectNumber": "${projectNumber}", + "rpo": "DEFAULT", + "selfLink": "https://www.googleapis.com/storage/v1/b/storagebucket-${uniqueId}", + "softDeletePolicy": { + "effectiveTime": "2024-04-01T12:34:56.123456Z", + "retentionDurationSeconds": "604800" + }, + "storageClass": "STANDARD", + "timeCreated": "2024-04-01T12:34:56.123456Z", + "updated": "2024-04-01T12:34:56.123456Z" +} + +--- + +GET https://storage.googleapis.com/storage/v1/b/storagebucket-${uniqueId}/o?alt=json&prettyPrint=false&versions=true +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private, max-age=0, must-revalidate, no-transform +Content-Type: application/json; charset=UTF-8 +Expires: {now+0m} +Server: UploadServer +Vary: Origin +Vary: X-Origin + +{ + "kind": "storage#objects" +} + +--- + +DELETE https://storage.googleapis.com/storage/v1/b/storagebucket-${uniqueId}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +204 No Content +Cache-Control: no-cache, no-store, max-age=0, must-revalidate +Content-Type: application/json +Expires: Mon, 01 Jan 1990 00:00:00 GMT +Pragma: no-cache +Server: UploadServer +Vary: Origin +Vary: X-Origin \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob-direct/create.yaml b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob-direct/create.yaml new file mode 100644 index 0000000000..0954dd4c82 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob-direct/create.yaml @@ -0,0 +1,33 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: dataflow.cnrm.cloud.google.com/v1beta1 +kind: DataflowFlexTemplateJob +metadata: + annotations: + cnrm.cloud.google.com/on-delete: "cancel" + alpha.cnrm.cloud.google.com/reconciler: "direct" + name: dataflowflextemplatejob-${uniqueId} +spec: + region: us-central1 + # This is a public, Google-maintained Dataflow Job flex template of a batch job + containerSpecGcsPath: gs://dataflow-templates/2022-10-03-00_RC00/flex/File_Format_Conversion + parameters: + inputFileFormat: csv + outputFileFormat: avro + # This is maintained by us. + inputFileSpec: gs://config-connector-samples/dataflowflextemplate/numbertest.csv + outputBucket: gs://storagebucket-${uniqueId} + # This is maintained by us. + schema: gs://config-connector-samples/dataflowflextemplate/numbers.avsc diff --git a/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob-direct/dependencies.yaml b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob-direct/dependencies.yaml new file mode 100644 index 0000000000..376de8329f --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob-direct/dependencies.yaml @@ -0,0 +1,21 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: storage.cnrm.cloud.google.com/v1beta1 +kind: StorageBucket +metadata: + annotations: + cnrm.cloud.google.com/force-destroy: "true" + cnrm.cloud.google.com/reconcile-interval-in-seconds : "0" # Avoid time-dependencies + name: storagebucket-${uniqueId} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob/_generated_object_batchdataflowflextemplatejob.golden.yaml b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob/_generated_object_batchdataflowflextemplatejob.golden.yaml index ede4fa1ccc..9c21a68e89 100644 --- a/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob/_generated_object_batchdataflowflextemplatejob.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/batchdataflowflextemplatejob/_generated_object_batchdataflowflextemplatejob.golden.yaml @@ -6,19 +6,16 @@ metadata: cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"containerSpecGcsPath":"gs://dataflow-templates/2022-10-03-00_RC00/flex/File_Format_Conversion","parameters":{"inputFileFormat":"csv","inputFileSpec":"gs://config-connector-samples/dataflowflextemplate/numbertest.csv","outputBucket":"gs://storagebucket-${uniqueId}","outputFileFormat":"avro","schema":"gs://config-connector-samples/dataflowflextemplate/numbers.avsc"}}}' cnrm.cloud.google.com/on-delete: cancel cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 2 + generation: 1 labels: cnrm-test: "true" name: dataflowflextemplatejob-${uniqueId} namespace: ${uniqueId} spec: - additionalExperiments: - - disable_runner_v2_reason=java_job_google_template - - enable_always_on_exception_sampling containerSpecGcsPath: gs://dataflow-templates/2022-10-03-00_RC00/flex/File_Format_Conversion parameters: inputFileFormat: csv @@ -27,10 +24,6 @@ spec: outputFileFormat: avro schema: gs://config-connector-samples/dataflowflextemplate/numbers.avsc region: us-central1 - serviceAccountEmailRef: - external: ${projectNumber}-compute@developer.gserviceaccount.com - stagingLocation: gs://dataflow-staging-us-central1-${projectNumber}/staging - tempLocation: gs://dataflow-staging-us-central1-${projectNumber}/tmp status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" @@ -39,6 +32,6 @@ status: status: "True" type: Ready jobId: ${jobID} - observedGeneration: 2 + observedGeneration: 1 state: JOB_STATE_RUNNING type: JOB_TYPE_BATCH diff --git a/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/streamingdataflowflextemplatejob/_generated_object_streamingdataflowflextemplatejob.golden.yaml b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/streamingdataflowflextemplatejob/_generated_object_streamingdataflowflextemplatejob.golden.yaml index 2aa5276131..5827310a8f 100644 --- a/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/streamingdataflowflextemplatejob/_generated_object_streamingdataflowflextemplatejob.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/streamingdataflowflextemplatejob/_generated_object_streamingdataflowflextemplatejob.golden.yaml @@ -3,36 +3,28 @@ kind: DataflowFlexTemplateJob metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"containerSpecGcsPath":"gs://dataflow-templates/2020-08-31-00_RC00/flex/PubSub_Avro_to_BigQuery","parameters":{"createDisposition":"CREATE_NEVER","inputSubscription":"projects/${projectId}/subscriptions/pubsubsubscription-${uniqueId}","outputTableSpec":"${projectId}:bigquerydataset${uniqueId}.bigquerytable${uniqueId}","outputTopic":"projects/${projectId}/topics/pubsubtopic1-${uniqueId}","schemaPath":"gs://config-connector-samples/dataflowflextemplate/numbers.avsc"}}}' + cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"containerSpecGcsPath":"gs://dataflow-templates/2020-08-31-00_RC00/flex/PubSub_Avro_to_BigQuery","parameters":{"createDisposition":"CREATE_NEVER","inputSubscription":"projects/${projectId}/subscriptions/pubsubsubscription-${uniqueId}","outputTableSpec":"${projectId}:bigquerydataset${uniqueId}.bigquerytable${uniqueId}","outputTopic":"projects/${projectId}/topics/pubsubtopic0-${uniqueId}","schemaPath":"gs://config-connector-samples/dataflowflextemplate/numbers.avsc"}}}' cnrm.cloud.google.com/on-delete: cancel cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 2 + generation: 1 labels: cnrm-test: "true" label-one: value-one name: dataflowflextemplatejob-${uniqueId} namespace: ${uniqueId} spec: - additionalExperiments: - - disable_runner_v2_reason=java_job_google_template - - enable_always_on_exception_sampling - - enable_streaming_java_vmr containerSpecGcsPath: gs://dataflow-templates/2020-08-31-00_RC00/flex/PubSub_Avro_to_BigQuery parameters: createDisposition: CREATE_NEVER inputSubscription: projects/${projectId}/subscriptions/pubsubsubscription-${uniqueId} outputTableSpec: ${projectId}:bigquerydataset${uniqueId}.bigquerytable${uniqueId} - outputTopic: projects/${projectId}/topics/pubsubtopic1-${uniqueId} + outputTopic: projects/${projectId}/topics/pubsubtopic0-${uniqueId} schemaPath: gs://config-connector-samples/dataflowflextemplate/numbers.avsc region: us-central1 - serviceAccountEmailRef: - external: ${projectNumber}-compute@developer.gserviceaccount.com - stagingLocation: gs://dataflow-staging-us-central1-${projectNumber}/staging - tempLocation: gs://dataflow-staging-us-central1-${projectNumber}/tmp status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" @@ -41,6 +33,6 @@ status: status: "True" type: Ready jobId: ${jobID} - observedGeneration: 2 + observedGeneration: 1 state: JOB_STATE_RUNNING type: JOB_TYPE_STREAMING diff --git a/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/streamingdataflowflextemplatejob/_http.log b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/streamingdataflowflextemplatejob/_http.log index ac845b9f50..d63f534bb0 100644 --- a/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/streamingdataflowflextemplatejob/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/streamingdataflowflextemplatejob/_http.log @@ -582,7 +582,7 @@ User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terr "createDisposition": "CREATE_NEVER", "inputSubscription": "projects/${projectId}/subscriptions/pubsubsubscription-${uniqueId}", "outputTableSpec": "${projectId}:bigquerydataset${uniqueId}.bigquerytable${uniqueId}", - "outputTopic": "projects/${projectId}/topics/pubsubtopic1-${uniqueId}", + "outputTopic": "projects/${projectId}/topics/pubsubtopic0-${uniqueId}", "schemaPath": "gs://config-connector-samples/dataflowflextemplate/numbers.avsc" } } diff --git a/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/streamingdataflowflextemplatejob/create.yaml b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/streamingdataflowflextemplatejob/create.yaml index f3073855b8..ad3c60f7b7 100644 --- a/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/streamingdataflowflextemplatejob/create.yaml +++ b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/streamingdataflowflextemplatejob/create.yaml @@ -28,6 +28,6 @@ spec: # This is maintained by us. schemaPath: gs://config-connector-samples/dataflowflextemplate/numbers.avsc inputSubscription: projects/${projectId}/subscriptions/pubsubsubscription-${uniqueId} - outputTopic: projects/${projectId}/topics/pubsubtopic1-${uniqueId} + outputTopic: projects/${projectId}/topics/pubsubtopic0-${uniqueId} outputTableSpec: ${projectId}:bigquerydataset${uniqueId}.bigquerytable${uniqueId} createDisposition: CREATE_NEVER diff --git a/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/streamingdataflowflextemplatejob2/_generated_object_streamingdataflowflextemplatejob2.golden.yaml b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/streamingdataflowflextemplatejob2/_generated_object_streamingdataflowflextemplatejob2.golden.yaml index 8d481d44d7..3838cec306 100644 --- a/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/streamingdataflowflextemplatejob2/_generated_object_streamingdataflowflextemplatejob2.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/dataflow/v1beta1/dataflowflextemplatejob/streamingdataflowflextemplatejob2/_generated_object_streamingdataflowflextemplatejob2.golden.yaml @@ -6,30 +6,22 @@ metadata: cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"containerSpecGcsPath":"gs://dataflow-templates-us-central1/2024-08-06-00_RC00/flex/Cloud_PubSub_to_GCS_Text_Flex","parameters":{"inputSubscription":"projects/${projectId}/subscriptions/pubsubsubscription-${uniqueId}","outputDirectory":"gs://bucket-dataflow-output-${uniqueId}/path2"}}}' cnrm.cloud.google.com/on-delete: cancel cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 3 + generation: 2 labels: cnrm-test: "true" label-one: value-two name: streamingdataflowflextemplatejob2-${uniqueId} namespace: ${uniqueId} spec: - additionalExperiments: - - disable_runner_v2_reason=java_job_google_template - - enable_always_on_exception_sampling - - enable_streaming_java_vmr containerSpecGcsPath: gs://dataflow-templates-us-central1/2024-08-06-00_RC00/flex/Cloud_PubSub_to_GCS_Text_Flex parameters: inputSubscription: projects/${projectId}/subscriptions/pubsubsubscription-${uniqueId} outputDirectory: gs://bucket-dataflow-output-${uniqueId}/path2 region: us-central1 - serviceAccountEmailRef: - external: ${projectNumber}-compute@developer.gserviceaccount.com - stagingLocation: gs://dataflow-staging-us-central1-${projectNumber}/staging - tempLocation: gs://dataflow-staging-us-central1-${projectNumber}/tmp status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" @@ -38,6 +30,6 @@ status: status: "True" type: Ready jobId: ${jobID} - observedGeneration: 3 + observedGeneration: 2 state: JOB_STATE_RUNNING type: JOB_TYPE_STREAMING diff --git a/pkg/test/resourcefixture/testdata/basic/dataproc/v1beta1/dataproccluster/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/dataproc/v1beta1/dataproccluster/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/dataproc/v1beta1/dataproccluster/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/dataproc/v1beta1/dataproccluster/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/dlp/v1beta1/dlpstoredinfotype/cloudstoragepathstoredinfotype/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/dlp/v1beta1/dlpstoredinfotype/cloudstoragepathstoredinfotype/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/dlp/v1beta1/dlpstoredinfotype/cloudstoragepathstoredinfotype/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/dlp/v1beta1/dlpstoredinfotype/cloudstoragepathstoredinfotype/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/dns/v1beta1/dnsrecordset/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/dns/v1beta1/dnsrecordset/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/dns/v1beta1/dnsrecordset/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/dns/v1beta1/dnsrecordset/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/edgecontainer/v1beta1/edgecontainercluster/_generated_object_edgecontainercluster.golden.yaml b/pkg/test/resourcefixture/testdata/basic/edgecontainer/v1beta1/edgecontainercluster/_generated_object_edgecontainercluster.golden.yaml index 5e160313c7..9809cd415e 100644 --- a/pkg/test/resourcefixture/testdata/basic/edgecontainer/v1beta1/edgecontainercluster/_generated_object_edgecontainercluster.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/edgecontainer/v1beta1/edgecontainercluster/_generated_object_edgecontainercluster.golden.yaml @@ -3,7 +3,7 @@ kind: EdgeContainerCluster metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -30,7 +30,6 @@ spec: - 10.1.0.0/16 projectRef: external: ${projectId} - releaseChannel: RELEASE_CHANNEL_UNSPECIFIED resourceID: edgecontainercluster-${uniqueId} status: conditions: diff --git a/pkg/test/resourcefixture/testdata/basic/edgecontainer/v1beta1/edgecontainernodepool/_generated_object_edgecontainernodepool.golden.yaml b/pkg/test/resourcefixture/testdata/basic/edgecontainer/v1beta1/edgecontainernodepool/_generated_object_edgecontainernodepool.golden.yaml index 896ada2aed..9ae13e546a 100644 --- a/pkg/test/resourcefixture/testdata/basic/edgecontainer/v1beta1/edgecontainernodepool/_generated_object_edgecontainernodepool.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/edgecontainer/v1beta1/edgecontainernodepool/_generated_object_edgecontainernodepool.golden.yaml @@ -17,7 +17,7 @@ kind: EdgeContainerNodePool metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworknetwork/_generated_object_edgenetworknetwork.golden.yaml b/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworknetwork/_generated_object_edgenetworknetwork.golden.yaml index e130bdbaa1..575a573c6a 100644 --- a/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworknetwork/_generated_object_edgenetworknetwork.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworknetwork/_generated_object_edgenetworknetwork.golden.yaml @@ -17,7 +17,7 @@ kind: EdgeNetworkNetwork metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworksubnet/_generated_object_edgenetworksubnet.golden.yaml b/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworksubnet/_generated_object_edgenetworksubnet.golden.yaml index 3e98f25681..fd32455d9b 100644 --- a/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworksubnet/_generated_object_edgenetworksubnet.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/edgenetwork/v1beta1/edgenetworksubnet/_generated_object_edgenetworksubnet.golden.yaml @@ -17,7 +17,7 @@ kind: EdgeNetworkSubnet metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/eventarc/v1beta1/eventarctrigger/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/eventarc/v1beta1/eventarctrigger/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/eventarc/v1beta1/eventarctrigger/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/eventarc/v1beta1/eventarctrigger/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-full/_generated_object_firestoredatabase-full.golden.yaml b/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-full/_generated_object_firestoredatabase-full.golden.yaml new file mode 100644 index 0000000000..a0076d49db --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-full/_generated_object_firestoredatabase-full.golden.yaml @@ -0,0 +1,34 @@ +apiVersion: firestore.cnrm.cloud.google.com/v1alpha1 +kind: FirestoreDatabase +metadata: + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 2 + labels: + cnrm-test: "true" + name: firestoredatabase-full-${uniqueId} + namespace: ${uniqueId} +spec: + concurrencyMode: OPTIMISTIC + locationID: us-west2 + pointInTimeRecoveryEnablement: POINT_IN_TIME_RECOVERY_ENABLED + projectRef: + external: ${projectId} + resourceID: firestoredatabase-${uniqueId} +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + externalRef: //firestore.googleapis.com/projects/${projectId}/databases/firestoredatabase-${uniqueId} + observedGeneration: 2 + observedState: + createTime: "1970-01-01T00:00:00Z" + earliestVersionTime: "1970-01-01T00:00:00Z" + etag: abcdef123456 + uid: 0123456789abcdef + updateTime: "1970-01-01T00:00:00Z" + versionRetentionPeriod: 604800s diff --git a/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-full/_http.log b/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-full/_http.log new file mode 100644 index 0000000000..c2fd578fa0 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-full/_http.log @@ -0,0 +1,353 @@ +GET https://firestore.googleapis.com/v1/projects/${projectId}/databases/firestoredatabase-${uniqueId}?%24alt=json%3Benum-encoding%3Dint +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Fdatabases%2Ffirestoredatabase-${uniqueId} + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "message": "Project '${projectId}' or database 'firestoredatabase-${uniqueId}' does not exist.", + "status": "NOT_FOUND" + } +} + +--- + +POST https://firestore.googleapis.com/v1/projects/${projectId}/databases?%24alt=json%3Benum-encoding%3Dint&databaseId=firestoredatabase-${uniqueId} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: parent=projects%2F${projectId} + +{ + "appEngineIntegrationMode": 2, + "concurrencyMode": 2, + "deleteProtectionState": 1, + "locationId": "us-west2", + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}", + "pointInTimeRecoveryEnablement": 2, + "type": 1 +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.firestore.admin.v1.CreateDatabaseMetadata" + }, + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/mockgcp.firestore.admin.v1.Database", + "appEngineIntegrationMode": 2, + "concurrencyMode": 2, + "createTime": "2024-04-01T12:34:56.123456Z", + "deleteProtectionState": 1, + "earliestVersionTime": "2024-04-01T12:34:56.123456Z", + "etag": "abcdef0123A=", + "locationId": "us-west2", + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}", + "pointInTimeRecoveryEnablement": 2, + "type": 1, + "uid": "111111111111111111111", + "updateTime": "2024-04-01T12:34:56.123456Z", + "versionRetentionPeriod": "3600s" + } +} + +--- + +GET https://firestore.googleapis.com/v1/projects/${projectId}/databases/firestoredatabase-${uniqueId}/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Fdatabases%2Ffirestoredatabase-${uniqueId}%2Foperations%2F${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "done": true, + "metadata": { + "@type": "type.googleapis.com/google.firestore.admin.v1.CreateDatabaseMetadata" + }, + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.firestore.admin.v1.Database", + "appEngineIntegrationMode": "DISABLED", + "concurrencyMode": "PESSIMISTIC", + "createTime": "2024-04-01T12:34:56.123456Z", + "deleteProtectionState": "DELETE_PROTECTION_DISABLED", + "earliestVersionTime": "2024-04-01T12:34:56.123456Z", + "etag": "abcdef0123A=", + "locationId": "us-west2", + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}", + "pointInTimeRecoveryEnablement": "POINT_IN_TIME_RECOVERY_DISABLED", + "type": "FIRESTORE_NATIVE", + "uid": "111111111111111111111", + "updateTime": "2024-04-01T12:34:56.123456Z", + "versionRetentionPeriod": "3600s" + } +} + +--- + +GET https://firestore.googleapis.com/v1/projects/${projectId}/databases/firestoredatabase-${uniqueId}?%24alt=json%3Benum-encoding%3Dint +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Fdatabases%2Ffirestoredatabase-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "appEngineIntegrationMode": 2, + "concurrencyMode": 2, + "createTime": "2024-04-01T12:34:56.123456Z", + "deleteProtectionState": 1, + "earliestVersionTime": "2024-04-01T12:34:56.123456Z", + "etag": "abcdef0123A=", + "locationId": "us-west2", + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}", + "pointInTimeRecoveryEnablement": 2, + "type": 1, + "uid": "111111111111111111111", + "updateTime": "2024-04-01T12:34:56.123456Z", + "versionRetentionPeriod": "3600s" +} + +--- + +PATCH https://firestore.googleapis.com/v1/projects/${projectId}/databases/firestoredatabase-${uniqueId}?%24alt=json%3Benum-encoding%3Dint&updateMask=concurrencyMode%2CpointInTimeRecoveryEnablement +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: database.name=projects%2F${projectId}%2Fdatabases%2Ffirestoredatabase-${uniqueId} + +{ + "appEngineIntegrationMode": 2, + "concurrencyMode": 1, + "createTime": "2024-04-01T12:34:56.123456Z", + "deleteProtectionState": 1, + "earliestVersionTime": "2024-04-01T12:34:56.123456Z", + "etag": "abcdef0123A=", + "locationId": "us-west2", + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}", + "pointInTimeRecoveryEnablement": 1, + "type": 1, + "uid": "111111111111111111111", + "updateTime": "2024-04-01T12:34:56.123456Z", + "versionRetentionPeriod": "3600s" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.firestore.admin.v1.UpdateDatabaseMetadata" + }, + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/mockgcp.firestore.admin.v1.Database", + "appEngineIntegrationMode": 2, + "concurrencyMode": 1, + "createTime": "2024-04-01T12:34:56.123456Z", + "deleteProtectionState": 1, + "earliestVersionTime": "2024-04-01T12:34:56.123456Z", + "etag": "abcdef0123A=", + "locationId": "us-west2", + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}", + "pointInTimeRecoveryEnablement": 1, + "type": 1, + "uid": "111111111111111111111", + "updateTime": "2024-04-01T12:34:56.123456Z", + "versionRetentionPeriod": "604800s" + } +} + +--- + +GET https://firestore.googleapis.com/v1/projects/${projectId}/databases/firestoredatabase-${uniqueId}/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Fdatabases%2Ffirestoredatabase-${uniqueId}%2Foperations%2F${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "done": true, + "metadata": { + "@type": "type.googleapis.com/google.firestore.admin.v1.UpdateDatabaseMetadata" + }, + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.firestore.admin.v1.Database", + "appEngineIntegrationMode": "DISABLED", + "concurrencyMode": "OPTIMISTIC", + "createTime": "2024-04-01T12:34:56.123456Z", + "deleteProtectionState": "DELETE_PROTECTION_DISABLED", + "earliestVersionTime": "2024-04-01T12:34:56.123456Z", + "etag": "abcdef0123A=", + "locationId": "us-west2", + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}", + "pointInTimeRecoveryEnablement": "POINT_IN_TIME_RECOVERY_ENABLED", + "type": "FIRESTORE_NATIVE", + "uid": "111111111111111111111", + "updateTime": "2024-04-01T12:34:56.123456Z", + "versionRetentionPeriod": "604800s" + } +} + +--- + +GET https://firestore.googleapis.com/v1/projects/${projectId}/databases/firestoredatabase-${uniqueId}?%24alt=json%3Benum-encoding%3Dint +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Fdatabases%2Ffirestoredatabase-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "appEngineIntegrationMode": 2, + "concurrencyMode": 1, + "createTime": "2024-04-01T12:34:56.123456Z", + "deleteProtectionState": 1, + "earliestVersionTime": "2024-04-01T12:34:56.123456Z", + "etag": "abcdef0123A=", + "locationId": "us-west2", + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}", + "pointInTimeRecoveryEnablement": 1, + "type": 1, + "uid": "111111111111111111111", + "updateTime": "2024-04-01T12:34:56.123456Z", + "versionRetentionPeriod": "604800s" +} + +--- + +DELETE https://firestore.googleapis.com/v1/projects/${projectId}/databases/firestoredatabase-${uniqueId}?%24alt=json%3Benum-encoding%3Dint&etag=abcdef0123A +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Fdatabases%2Ffirestoredatabase-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.firestore.admin.v1.DeleteDatabaseMetadata" + }, + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/mockgcp.firestore.admin.v1.Database", + "appEngineIntegrationMode": 2, + "concurrencyMode": 1, + "createTime": "2024-04-01T12:34:56.123456Z", + "deleteProtectionState": 1, + "earliestVersionTime": "2024-04-01T12:34:56.123456Z", + "etag": "abcdef0123A=", + "locationId": "us-west2", + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}", + "pointInTimeRecoveryEnablement": 1, + "type": 1, + "uid": "111111111111111111111", + "updateTime": "2024-04-01T12:34:56.123456Z", + "versionRetentionPeriod": "604800s" + } +} + +--- + +GET https://firestore.googleapis.com/v1/projects/${projectId}/databases/firestoredatabase-${uniqueId}/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Fdatabases%2Ffirestoredatabase-${uniqueId}%2Foperations%2F${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "done": true, + "metadata": { + "@type": "type.googleapis.com/google.firestore.admin.v1.DeleteDatabaseMetadata" + }, + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.firestore.admin.v1.Database" + } +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-full/create.yaml b/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-full/create.yaml new file mode 100644 index 0000000000..38828c0d70 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-full/create.yaml @@ -0,0 +1,25 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: firestore.cnrm.cloud.google.com/v1alpha1 +kind: FirestoreDatabase +metadata: + name: firestoredatabase-full-${uniqueId} +spec: + projectRef: + external: ${projectId} + resourceID: firestoredatabase-${uniqueId} + locationID: us-west2 + concurrencyMode: PESSIMISTIC + pointInTimeRecoveryEnablement: POINT_IN_TIME_RECOVERY_DISABLED \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-full/update.yaml b/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-full/update.yaml new file mode 100644 index 0000000000..b7590ca7e2 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-full/update.yaml @@ -0,0 +1,25 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: firestore.cnrm.cloud.google.com/v1alpha1 +kind: FirestoreDatabase +metadata: + name: firestoredatabase-full-${uniqueId} +spec: + projectRef: + external: ${projectId} + resourceID: firestoredatabase-${uniqueId} + locationID: us-west2 + concurrencyMode: OPTIMISTIC + pointInTimeRecoveryEnablement: POINT_IN_TIME_RECOVERY_ENABLED \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-minimal/_generated_object_firestoredatabase-minimal.golden.yaml b/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-minimal/_generated_object_firestoredatabase-minimal.golden.yaml new file mode 100644 index 0000000000..07e497d41d --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-minimal/_generated_object_firestoredatabase-minimal.golden.yaml @@ -0,0 +1,32 @@ +apiVersion: firestore.cnrm.cloud.google.com/v1alpha1 +kind: FirestoreDatabase +metadata: + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 1 + labels: + cnrm-test: "true" + name: firestoredatabase-minimal-${uniqueId} + namespace: ${uniqueId} +spec: + locationID: us-west2 + projectRef: + external: ${projectId} + resourceID: firestoredatabase-${uniqueId} +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + externalRef: //firestore.googleapis.com/projects/${projectId}/databases/firestoredatabase-${uniqueId} + observedGeneration: 1 + observedState: + createTime: "1970-01-01T00:00:00Z" + earliestVersionTime: "1970-01-01T00:00:00Z" + etag: abcdef123456 + uid: 0123456789abcdef + updateTime: "1970-01-01T00:00:00Z" + versionRetentionPeriod: 3600s diff --git a/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-minimal/_http.log b/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-minimal/_http.log new file mode 100644 index 0000000000..1667fb745f --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-minimal/_http.log @@ -0,0 +1,218 @@ +GET https://firestore.googleapis.com/v1/projects/${projectId}/databases/firestoredatabase-${uniqueId}?%24alt=json%3Benum-encoding%3Dint +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Fdatabases%2Ffirestoredatabase-${uniqueId} + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "message": "Project '${projectId}' or database 'firestoredatabase-${uniqueId}' does not exist.", + "status": "NOT_FOUND" + } +} + +--- + +POST https://firestore.googleapis.com/v1/projects/${projectId}/databases?%24alt=json%3Benum-encoding%3Dint&databaseId=firestoredatabase-${uniqueId} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: parent=projects%2F${projectId} + +{ + "appEngineIntegrationMode": 2, + "deleteProtectionState": 1, + "locationId": "us-west2", + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}", + "type": 1 +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.firestore.admin.v1.CreateDatabaseMetadata" + }, + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/mockgcp.firestore.admin.v1.Database", + "appEngineIntegrationMode": 2, + "concurrencyMode": 2, + "createTime": "2024-04-01T12:34:56.123456Z", + "deleteProtectionState": 1, + "earliestVersionTime": "2024-04-01T12:34:56.123456Z", + "etag": "abcdef0123A=", + "locationId": "us-west2", + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}", + "pointInTimeRecoveryEnablement": 2, + "type": 1, + "uid": "111111111111111111111", + "updateTime": "2024-04-01T12:34:56.123456Z", + "versionRetentionPeriod": "3600s" + } +} + +--- + +GET https://firestore.googleapis.com/v1/projects/${projectId}/databases/firestoredatabase-${uniqueId}/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Fdatabases%2Ffirestoredatabase-${uniqueId}%2Foperations%2F${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "done": true, + "metadata": { + "@type": "type.googleapis.com/google.firestore.admin.v1.CreateDatabaseMetadata" + }, + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.firestore.admin.v1.Database", + "appEngineIntegrationMode": "DISABLED", + "concurrencyMode": "PESSIMISTIC", + "createTime": "2024-04-01T12:34:56.123456Z", + "deleteProtectionState": "DELETE_PROTECTION_DISABLED", + "earliestVersionTime": "2024-04-01T12:34:56.123456Z", + "etag": "abcdef0123A=", + "locationId": "us-west2", + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}", + "pointInTimeRecoveryEnablement": "POINT_IN_TIME_RECOVERY_DISABLED", + "type": "FIRESTORE_NATIVE", + "uid": "111111111111111111111", + "updateTime": "2024-04-01T12:34:56.123456Z", + "versionRetentionPeriod": "3600s" + } +} + +--- + +GET https://firestore.googleapis.com/v1/projects/${projectId}/databases/firestoredatabase-${uniqueId}?%24alt=json%3Benum-encoding%3Dint +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Fdatabases%2Ffirestoredatabase-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "appEngineIntegrationMode": 2, + "concurrencyMode": 2, + "createTime": "2024-04-01T12:34:56.123456Z", + "deleteProtectionState": 1, + "earliestVersionTime": "2024-04-01T12:34:56.123456Z", + "etag": "abcdef0123A=", + "locationId": "us-west2", + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}", + "pointInTimeRecoveryEnablement": 2, + "type": 1, + "uid": "111111111111111111111", + "updateTime": "2024-04-01T12:34:56.123456Z", + "versionRetentionPeriod": "3600s" +} + +--- + +DELETE https://firestore.googleapis.com/v1/projects/${projectId}/databases/firestoredatabase-${uniqueId}?%24alt=json%3Benum-encoding%3Dint&etag=abcdef0123A +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Fdatabases%2Ffirestoredatabase-${uniqueId} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "metadata": { + "@type": "type.googleapis.com/google.firestore.admin.v1.DeleteDatabaseMetadata" + }, + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/mockgcp.firestore.admin.v1.Database", + "appEngineIntegrationMode": 2, + "concurrencyMode": 2, + "createTime": "2024-04-01T12:34:56.123456Z", + "deleteProtectionState": 1, + "earliestVersionTime": "2024-04-01T12:34:56.123456Z", + "etag": "abcdef0123A=", + "locationId": "us-west2", + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}", + "pointInTimeRecoveryEnablement": 2, + "type": 1, + "uid": "111111111111111111111", + "updateTime": "2024-04-01T12:34:56.123456Z", + "versionRetentionPeriod": "3600s" + } +} + +--- + +GET https://firestore.googleapis.com/v1/projects/${projectId}/databases/firestoredatabase-${uniqueId}/operations/${operationID} +Content-Type: application/json +User-Agent: kcc/controller-manager +x-goog-request-params: name=projects%2F${projectId}%2Fdatabases%2Ffirestoredatabase-${uniqueId}%2Foperations%2F${operationID} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "done": true, + "metadata": { + "@type": "type.googleapis.com/google.firestore.admin.v1.DeleteDatabaseMetadata" + }, + "name": "projects/${projectId}/databases/firestoredatabase-${uniqueId}/operations/${operationID}", + "response": { + "@type": "type.googleapis.com/google.firestore.admin.v1.Database" + } +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-minimal/create.yaml b/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-minimal/create.yaml new file mode 100644 index 0000000000..eea2aae6f3 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoredatabase/firestoredatabase-minimal/create.yaml @@ -0,0 +1,23 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: firestore.cnrm.cloud.google.com/v1alpha1 +kind: FirestoreDatabase +metadata: + name: firestoredatabase-minimal-${uniqueId} +spec: + projectRef: + external: ${projectId} + resourceID: firestoredatabase-${uniqueId} + locationID: us-west2 \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoreindex/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoreindex/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoreindex/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/firestore/v1beta1/firestoreindex/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/gkehub/v1beta1/gkehubfeature/acmfeature/_generated_object_acmfeature.golden.yaml b/pkg/test/resourcefixture/testdata/basic/gkehub/v1beta1/gkehubfeature/acmfeature/_generated_object_acmfeature.golden.yaml index ae57b8a85f..75c17107b5 100644 --- a/pkg/test/resourcefixture/testdata/basic/gkehub/v1beta1/gkehubfeature/acmfeature/_generated_object_acmfeature.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/gkehub/v1beta1/gkehubfeature/acmfeature/_generated_object_acmfeature.golden.yaml @@ -3,7 +3,7 @@ kind: GKEHubFeature metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/gkehub/v1beta1/gkehubfeature/mcifeature/_generated_object_mcifeature.golden.yaml b/pkg/test/resourcefixture/testdata/basic/gkehub/v1beta1/gkehubfeature/mcifeature/_generated_object_mcifeature.golden.yaml index f585f38b9c..235d2b26fe 100644 --- a/pkg/test/resourcefixture/testdata/basic/gkehub/v1beta1/gkehubfeature/mcifeature/_generated_object_mcifeature.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/gkehub/v1beta1/gkehubfeature/mcifeature/_generated_object_mcifeature.golden.yaml @@ -3,7 +3,7 @@ kind: GKEHubFeature metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/gkehub/v1beta1/gkehubfeature/mcsdfeature/_generated_object_mcsdfeature.golden.yaml b/pkg/test/resourcefixture/testdata/basic/gkehub/v1beta1/gkehubfeature/mcsdfeature/_generated_object_mcsdfeature.golden.yaml index b162146ff5..562b5510a3 100644 --- a/pkg/test/resourcefixture/testdata/basic/gkehub/v1beta1/gkehubfeature/mcsdfeature/_generated_object_mcsdfeature.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/gkehub/v1beta1/gkehubfeature/mcsdfeature/_generated_object_mcsdfeature.golden.yaml @@ -3,7 +3,7 @@ kind: GKEHubFeature metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/gkehub/v1beta1/gkehubmembership/_generated_object_gkehubmembership.golden.yaml b/pkg/test/resourcefixture/testdata/basic/gkehub/v1beta1/gkehubmembership/_generated_object_gkehubmembership.golden.yaml index 3fdc5c5ba1..3477c71d20 100644 --- a/pkg/test/resourcefixture/testdata/basic/gkehub/v1beta1/gkehubmembership/_generated_object_gkehubmembership.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/gkehub/v1beta1/gkehubmembership/_generated_object_gkehubmembership.golden.yaml @@ -5,7 +5,7 @@ metadata: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/mutable-but-unreadable-fields: '{}' cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -22,8 +22,6 @@ spec: gkeCluster: resourceRef: name: containercluster-${uniqueId} - externalId: c772f869-1d6c-4d50-a92e-816c48322246 - infrastructureType: MULTI_CLOUD location: global resourceID: gkehubmembership-${uniqueId} status: diff --git a/pkg/test/resourcefixture/testdata/basic/iam/v1beta1/iamserviceaccount/_generated_object_iamserviceaccount.golden.yaml b/pkg/test/resourcefixture/testdata/basic/iam/v1beta1/iamserviceaccount/_generated_object_iamserviceaccount.golden.yaml index 8e7ea44937..6864cfa8cf 100644 --- a/pkg/test/resourcefixture/testdata/basic/iam/v1beta1/iamserviceaccount/_generated_object_iamserviceaccount.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/iam/v1beta1/iamserviceaccount/_generated_object_iamserviceaccount.golden.yaml @@ -18,7 +18,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/iam/v1beta1/iamworkloadidentitypoolprovider/oidcworkloadidentitypoolprovider/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/iam/v1beta1/iamworkloadidentitypoolprovider/oidcworkloadidentitypoolprovider/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/iam/v1beta1/iamworkloadidentitypoolprovider/oidcworkloadidentitypoolprovider/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/iam/v1beta1/iamworkloadidentitypoolprovider/oidcworkloadidentitypoolprovider/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/identityplatform/v1beta1/identityplatformoauthidpconfig/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/identityplatform/v1beta1/identityplatformoauthidpconfig/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/identityplatform/v1beta1/identityplatformoauthidpconfig/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/identityplatform/v1beta1/identityplatformoauthidpconfig/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmscryptokey/_generated_object_kmscryptokey.golden.yaml b/pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmscryptokey/_generated_object_kmscryptokey.golden.yaml index 92188d7891..5865917621 100644 --- a/pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmscryptokey/_generated_object_kmscryptokey.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmscryptokey/_generated_object_kmscryptokey.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -15,7 +15,6 @@ metadata: name: kmscryptokey-${uniqueId} namespace: ${uniqueId} spec: - destroyScheduledDuration: 2592000s importOnly: false keyRingRef: name: kmscryptokey-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmscryptokey/_http.log b/pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmscryptokey/_http.log index b6dcc0b39b..968bc6781b 100644 --- a/pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmscryptokey/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmscryptokey/_http.log @@ -129,6 +129,14 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmscryptokey-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", + "primary": { + "algorithm": "EC_SIGN_P384_SHA384", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmscryptokey-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, "purpose": "ASYMMETRIC_SIGN", "versionTemplate": { "algorithm": "EC_SIGN_P384_SHA384", @@ -162,6 +170,14 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmscryptokey-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", + "primary": { + "algorithm": "EC_SIGN_P384_SHA384", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmscryptokey-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, "purpose": "ASYMMETRIC_SIGN", "versionTemplate": { "algorithm": "EC_SIGN_P384_SHA384", diff --git a/pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmscryptokey/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmscryptokey/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmscryptokey/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmscryptokey/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmskeyring/_generated_object_kmskeyring.golden.yaml b/pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmskeyring/_generated_object_kmskeyring.golden.yaml index 1962d4ae9d..fa77033ad9 100644 --- a/pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmskeyring/_generated_object_kmskeyring.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/kms/v1beta1/kmskeyring/_generated_object_kmskeyring.golden.yaml @@ -18,7 +18,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/logging/v1beta1/logginglogbucket/projectlogbucket/_generated_object_projectlogbucket.golden.yaml b/pkg/test/resourcefixture/testdata/basic/logging/v1beta1/logginglogbucket/projectlogbucket/_generated_object_projectlogbucket.golden.yaml index 53ab47097d..4bdbd39798 100644 --- a/pkg/test/resourcefixture/testdata/basic/logging/v1beta1/logginglogbucket/projectlogbucket/_generated_object_projectlogbucket.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/logging/v1beta1/logginglogbucket/projectlogbucket/_generated_object_projectlogbucket.golden.yaml @@ -17,7 +17,7 @@ kind: LoggingLogBucket metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/logging/v1beta1/logginglogview/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/logging/v1beta1/logginglogview/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/logging/v1beta1/logginglogview/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/logging/v1beta1/logginglogview/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/memcache/v1beta1/memcacheinstance/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/memcache/v1beta1/memcacheinstance/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/memcache/v1beta1/memcacheinstance/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/memcache/v1beta1/memcacheinstance/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringalertpolicy/_generated_object_monitoringalertpolicy.golden.yaml b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringalertpolicy/_generated_object_monitoringalertpolicy.golden.yaml index abfb6c9fa3..5feb86c3cc 100644 --- a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringalertpolicy/_generated_object_monitoringalertpolicy.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringalertpolicy/_generated_object_monitoringalertpolicy.golden.yaml @@ -4,11 +4,11 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 4 + generation: 3 labels: cnrm-test: "true" name: monitoringalertpolicy-${uniqueId} @@ -32,7 +32,6 @@ spec: trigger: count: 3 displayName: Very low CPU usage - name: projects/${projectId}/alertPolicies/${alertPolicyId}/conditions/${conditionId} displayName: Updated Test Alert Policy documentation: content: |- @@ -45,7 +44,6 @@ spec: That alone should discourage the crew. Just the place for a Snark! I have measured it thrice: What I measure three times is true.” - mimeType: text/markdown enabled: false notificationChannels: - name: monitoringnotificationchannel3-${uniqueId} @@ -63,4 +61,4 @@ status: - mutateTime: "1970-01-01T00:00:00Z" mutatedBy: user@google.com name: projects/${projectId}/alertPolicies/${alertPolicyId} - observedGeneration: 4 + observedGeneration: 3 diff --git a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringalertpolicy/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringalertpolicy/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringalertpolicy/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringalertpolicy/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringgroup/_generated_object_monitoringgroup.golden.yaml b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringgroup/_generated_object_monitoringgroup.golden.yaml index b979eeff17..91fdd4a4c5 100644 --- a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringgroup/_generated_object_monitoringgroup.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringgroup/_generated_object_monitoringgroup.golden.yaml @@ -3,7 +3,7 @@ kind: MonitoringGroup metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringnotificationchannel/_generated_object_monitoringnotificationchannel.golden.yaml b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringnotificationchannel/_generated_object_monitoringnotificationchannel.golden.yaml index a222cd1b8d..a3d478f221 100644 --- a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringnotificationchannel/_generated_object_monitoringnotificationchannel.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringnotificationchannel/_generated_object_monitoringnotificationchannel.golden.yaml @@ -6,7 +6,7 @@ metadata: cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"sensitiveLabels":{"password":{"valueFrom":{"secretKeyRef":{"key":"password","name":"secret-${uniqueId}"}}}}}}' cnrm.cloud.google.com/observed-secret-versions: (removed) cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -22,7 +22,6 @@ spec: description: Sends notifications to newly indicated webhook URL using HTTP-standard basic authentication. Should be used in conjunction with SSL/TLS to reduce the risk of attackers snooping the credentials. - enabled: true labels: url: http://hooks.example.com/notification username: user diff --git a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringuptimecheckconfig/httpuptimecheckconfig/_generated_object_httpuptimecheckconfig.golden.yaml b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringuptimecheckconfig/httpuptimecheckconfig/_generated_object_httpuptimecheckconfig.golden.yaml index 7442d3ba93..99bffd723f 100644 --- a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringuptimecheckconfig/httpuptimecheckconfig/_generated_object_httpuptimecheckconfig.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringuptimecheckconfig/httpuptimecheckconfig/_generated_object_httpuptimecheckconfig.golden.yaml @@ -5,7 +5,7 @@ metadata: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"httpCheck":{"authInfo":{"password":{"valueFrom":{"secretKeyRef":{"key":"password","name":"secret-2-${uniqueId}"}}}},"headers":{"header-one":"value-one","header-two":"value-two"}}}}' cnrm.cloud.google.com/observed-secret-versions: (removed) - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringuptimecheckconfig/tcpuptimecheckconfig/_generated_object_tcpuptimecheckconfig.golden.yaml b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringuptimecheckconfig/tcpuptimecheckconfig/_generated_object_tcpuptimecheckconfig.golden.yaml index 29d90180ab..9e375bc1b4 100644 --- a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringuptimecheckconfig/tcpuptimecheckconfig/_generated_object_tcpuptimecheckconfig.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringuptimecheckconfig/tcpuptimecheckconfig/_generated_object_tcpuptimecheckconfig.golden.yaml @@ -5,7 +5,7 @@ metadata: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/mutable-but-unreadable-fields: '{}' cnrm.cloud.google.com/observed-secret-versions: (removed) - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -16,7 +16,6 @@ metadata: namespace: ${uniqueId} spec: displayName: updated-tcp-uptime-check - period: 60s projectRef: external: projects/${projectId} resourceGroup: diff --git a/pkg/test/resourcefixture/testdata/basic/networkconnectivity/v1beta1/networkconnectivityhub/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/networkconnectivity/v1beta1/networkconnectivityhub/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/networkconnectivity/v1beta1/networkconnectivityhub/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/networkconnectivity/v1beta1/networkconnectivityhub/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/networkservices/v1beta1/networkservicesgrpcroute/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/networkservices/v1beta1/networkservicesgrpcroute/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/networkservices/v1beta1/networkservicesgrpcroute/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/networkservices/v1beta1/networkservicesgrpcroute/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/networkservices/v1beta1/networkservicesmesh/_generated_object_networkservicesmesh.golden.yaml b/pkg/test/resourcefixture/testdata/basic/networkservices/v1beta1/networkservicesmesh/_generated_object_networkservicesmesh.golden.yaml index b486036e03..7ff00ad9b9 100644 --- a/pkg/test/resourcefixture/testdata/basic/networkservices/v1beta1/networkservicesmesh/_generated_object_networkservicesmesh.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/networkservices/v1beta1/networkservicesmesh/_generated_object_networkservicesmesh.golden.yaml @@ -17,7 +17,7 @@ kind: NetworkServicesMesh metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/osconfig/v1beta1/osconfigguestpolicy/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/osconfig/v1beta1/osconfigguestpolicy/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/osconfig/v1beta1/osconfigguestpolicy/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/osconfig/v1beta1/osconfigguestpolicy/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/privateca/v1beta1/privatecacapool/privatecacapoolbasic/_generated_object_privatecacapoolbasic.golden.yaml b/pkg/test/resourcefixture/testdata/basic/privateca/v1beta1/privatecacapool/privatecacapoolbasic/_generated_object_privatecacapoolbasic.golden.yaml index d81c3f4af0..08e48509f5 100644 --- a/pkg/test/resourcefixture/testdata/basic/privateca/v1beta1/privatecacapool/privatecacapoolbasic/_generated_object_privatecacapoolbasic.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/privateca/v1beta1/privatecacapool/privatecacapoolbasic/_generated_object_privatecacapoolbasic.golden.yaml @@ -17,7 +17,7 @@ kind: PrivateCACAPool metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/privateca/v1beta1/privatecacapool/privatecacapoolbasic/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/privateca/v1beta1/privatecacapool/privatecacapoolbasic/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/privateca/v1beta1/privatecacapool/privatecacapoolbasic/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/privateca/v1beta1/privatecacapool/privatecacapoolbasic/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/privateca/v1beta1/privatecacapool/privatecacapooliam/_generated_object_privatecacapooliam.golden.yaml b/pkg/test/resourcefixture/testdata/basic/privateca/v1beta1/privatecacapool/privatecacapooliam/_generated_object_privatecacapooliam.golden.yaml index c9a58a241e..2d57cfa703 100644 --- a/pkg/test/resourcefixture/testdata/basic/privateca/v1beta1/privatecacapool/privatecacapooliam/_generated_object_privatecacapooliam.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/privateca/v1beta1/privatecacapool/privatecacapooliam/_generated_object_privatecacapooliam.golden.yaml @@ -2,7 +2,7 @@ apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: annotations: - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubschema/_generated_object_pubsubschema.golden.yaml b/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubschema/_generated_object_pubsubschema.golden.yaml index 47efd15914..37e64300b6 100644 --- a/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubschema/_generated_object_pubsubschema.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubschema/_generated_object_pubsubschema.golden.yaml @@ -3,7 +3,7 @@ kind: PubSubSchema metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubsubscription/basicpubsubsubscription/_generated_object_basicpubsubsubscription.golden.yaml b/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubsubscription/basicpubsubsubscription/_generated_object_basicpubsubsubscription.golden.yaml index 1fad843da0..f7f0cbb77d 100644 --- a/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubsubscription/basicpubsubsubscription/_generated_object_basicpubsubsubscription.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubsubscription/basicpubsubsubscription/_generated_object_basicpubsubsubscription.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -18,8 +18,6 @@ metadata: spec: ackDeadlineSeconds: 20 enableExactlyOnceDelivery: true - expirationPolicy: - ttl: 2678400s messageRetentionDuration: 86400s resourceID: pubsubsubscription-sample-${uniqueId} retainAckedMessages: false diff --git a/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubsubscription/basicpubsubsubscription/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubsubscription/basicpubsubsubscription/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubsubscription/basicpubsubsubscription/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubsubscription/basicpubsubsubscription/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubsubscription/bigquerypubsubsubscription/_generated_object_bigquerypubsubsubscription.golden.yaml b/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubsubscription/bigquerypubsubsubscription/_generated_object_bigquerypubsubsubscription.golden.yaml index 1830a2200c..5a8caaee69 100644 --- a/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubsubscription/bigquerypubsubsubscription/_generated_object_bigquerypubsubsubscription.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubsubscription/bigquerypubsubsubscription/_generated_object_bigquerypubsubsubscription.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -15,13 +15,9 @@ metadata: name: pubsubsubscription-${uniqueId} namespace: ${uniqueId} spec: - ackDeadlineSeconds: 10 bigqueryConfig: tableRef: name: bigquerytable-2-${uniqueId} - expirationPolicy: - ttl: 2678400s - messageRetentionDuration: 604800s resourceID: pubsubsubscription-${uniqueId} topicRef: name: pubsubtopic-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubtopic/_generated_object_pubsubtopic.golden.yaml b/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubtopic/_generated_object_pubsubtopic.golden.yaml index 8334e0f7b9..4313afb2ff 100644 --- a/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubtopic/_generated_object_pubsubtopic.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/pubsub/v1beta1/pubsubtopic/_generated_object_pubsubtopic.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/pubsublite/v1beta1/pubsublitereservation/_generated_object_pubsublitereservation.golden.yaml b/pkg/test/resourcefixture/testdata/basic/pubsublite/v1beta1/pubsublitereservation/_generated_object_pubsublitereservation.golden.yaml index 0403323503..bf5317f9e9 100644 --- a/pkg/test/resourcefixture/testdata/basic/pubsublite/v1beta1/pubsublitereservation/_generated_object_pubsublitereservation.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/pubsublite/v1beta1/pubsublitereservation/_generated_object_pubsublitereservation.golden.yaml @@ -3,7 +3,7 @@ kind: PubSubLiteReservation metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/pubsublite/v1beta1/pubsublitereservation/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/pubsublite/v1beta1/pubsublitereservation/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/pubsublite/v1beta1/pubsublitereservation/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/pubsublite/v1beta1/pubsublitereservation/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/recaptchaenterprise/v1beta1/recaptchaenterprisekey/androidrecaptchaenterprisekey/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/recaptchaenterprise/v1beta1/recaptchaenterprisekey/androidrecaptchaenterprisekey/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/recaptchaenterprise/v1beta1/recaptchaenterprisekey/androidrecaptchaenterprisekey/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/recaptchaenterprise/v1beta1/recaptchaenterprisekey/androidrecaptchaenterprisekey/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/redis/v1beta1/redisinstance/_generated_object_redisinstance.golden.yaml b/pkg/test/resourcefixture/testdata/basic/redis/v1beta1/redisinstance/_generated_object_redisinstance.golden.yaml index 271de67148..9bf4dc294e 100644 --- a/pkg/test/resourcefixture/testdata/basic/redis/v1beta1/redisinstance/_generated_object_redisinstance.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/redis/v1beta1/redisinstance/_generated_object_redisinstance.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -16,20 +16,15 @@ metadata: name: redisinstances-${uniqueId} namespace: ${uniqueId} spec: - authorizedNetworkRef: - external: projects/${projectId}/global/networks/default - connectMode: DIRECT_PEERING displayName: newDisplayName - locationId: us-central1-a + maintenanceSchedule: + - endTime: "2023-08-01T16:29:22.045123456Z" + scheduleDeadlineTime: "2023-08-01T17:29:22.045123456Z" + startTime: "2023-08-01T15:29:22.045123456Z" memorySizeGb: 20 - persistenceConfig: - persistenceMode: DISABLED - readReplicasMode: READ_REPLICAS_DISABLED - redisVersion: REDIS_7_0 region: us-central1 resourceID: redisinstances-${uniqueId} tier: BASIC - transitEncryptionMode: DISABLED status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/basic/redis/v1beta1/redisinstance/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/redis/v1beta1/redisinstance/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/redis/v1beta1/redisinstance/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/redis/v1beta1/redisinstance/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectinfolder/_generated_object_projectinfolder.golden.yaml b/pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectinfolder/_generated_object_projectinfolder.golden.yaml index e9eddcccd5..ed50a9789d 100644 --- a/pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectinfolder/_generated_object_projectinfolder.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectinfolder/_generated_object_projectinfolder.golden.yaml @@ -3,7 +3,7 @@ kind: Project metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectinorg/_generated_object_projectinorg.golden.yaml b/pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectinorg/_generated_object_projectinorg.golden.yaml index df4b4d130a..0fdf86108f 100644 --- a/pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectinorg/_generated_object_projectinorg.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectinorg/_generated_object_projectinorg.golden.yaml @@ -3,7 +3,7 @@ kind: Project metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectinorg/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectinorg/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectinorg/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectinorg/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectmovedfoldertofolder/_generated_object_projectmovedfoldertofolder.golden.yaml b/pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectmovedfoldertofolder/_generated_object_projectmovedfoldertofolder.golden.yaml index 37b0a9eea4..478471c443 100644 --- a/pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectmovedfoldertofolder/_generated_object_projectmovedfoldertofolder.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/resourcemanager/v1beta1/project/projectmovedfoldertofolder/_generated_object_projectmovedfoldertofolder.golden.yaml @@ -3,7 +3,7 @@ kind: Project metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/run/v1beta1/runservice/runservicebasic/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/run/v1beta1/runservice/runservicebasic/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/run/v1beta1/runservice/runservicebasic/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/run/v1beta1/runservice/runservicebasic/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/secretmanager/v1beta1/secretmanagersecret/_generated_object_secretmanagersecret.golden.yaml b/pkg/test/resourcefixture/testdata/basic/secretmanager/v1beta1/secretmanagersecret/_generated_object_secretmanagersecret.golden.yaml index 6cf2b7d133..29895678a1 100644 --- a/pkg/test/resourcefixture/testdata/basic/secretmanager/v1beta1/secretmanagersecret/_generated_object_secretmanagersecret.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/secretmanager/v1beta1/secretmanagersecret/_generated_object_secretmanagersecret.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/secretmanager/v1beta1/secretmanagersecretversion/_generated_object_secretmanagersecretversion.golden.yaml b/pkg/test/resourcefixture/testdata/basic/secretmanager/v1beta1/secretmanagersecretversion/_generated_object_secretmanagersecretversion.golden.yaml index 42be976044..dae9a9399b 100644 --- a/pkg/test/resourcefixture/testdata/basic/secretmanager/v1beta1/secretmanagersecretversion/_generated_object_secretmanagersecretversion.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/secretmanager/v1beta1/secretmanagersecretversion/_generated_object_secretmanagersecretversion.golden.yaml @@ -1,17 +1,3 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: secretmanager.cnrm.cloud.google.com/v1beta1 kind: SecretManagerSecretVersion metadata: @@ -19,7 +5,7 @@ metadata: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/observed-secret-versions: (removed) cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -29,7 +15,6 @@ metadata: name: secretmanagersecretversion-${uniqueId} namespace: ${uniqueId} spec: - deletionPolicy: DELETE enabled: false resourceID: "1" secretData: diff --git a/pkg/test/resourcefixture/testdata/basic/secretmanager/v1beta1/secretmanagersecretversion/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/secretmanager/v1beta1/secretmanagersecretversion/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/secretmanager/v1beta1/secretmanagersecretversion/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/secretmanager/v1beta1/secretmanagersecretversion/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/servicedirectory/v1beta1/servicedirectorynamespace/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/servicedirectory/v1beta1/servicedirectorynamespace/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/servicedirectory/v1beta1/servicedirectorynamespace/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/servicedirectory/v1beta1/servicedirectorynamespace/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/servicenetworking/v1beta1/servicenetworkingconnection/_generated_object_servicenetworkingconnection.golden.yaml b/pkg/test/resourcefixture/testdata/basic/servicenetworking/v1beta1/servicenetworkingconnection/_generated_object_servicenetworkingconnection.golden.yaml index a26ff2531e..310f06fee2 100644 --- a/pkg/test/resourcefixture/testdata/basic/servicenetworking/v1beta1/servicenetworkingconnection/_generated_object_servicenetworkingconnection.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/servicenetworking/v1beta1/servicenetworkingconnection/_generated_object_servicenetworkingconnection.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/servicenetworking/v1beta1/servicenetworkingconnection/_http.log b/pkg/test/resourcefixture/testdata/basic/servicenetworking/v1beta1/servicenetworkingconnection/_http.log index c8d42c84d8..af28026021 100644 --- a/pkg/test/resourcefixture/testdata/basic/servicenetworking/v1beta1/servicenetworkingconnection/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/servicenetworking/v1beta1/servicenetworkingconnection/_http.log @@ -190,10 +190,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress1-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress1-${uniqueId}", + "user": "user@example.com" } --- @@ -367,10 +403,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress2-${uniqueId}", + "user": "user@example.com" } --- @@ -1034,10 +1106,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress2-${uniqueId}", + "user": "user@example.com" } --- @@ -1097,10 +1205,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress1-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress1-${uniqueId}", + "user": "user@example.com" } --- diff --git a/pkg/test/resourcefixture/testdata/basic/servicenetworking/v1beta1/servicenetworkingconnection/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/servicenetworking/v1beta1/servicenetworkingconnection/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/servicenetworking/v1beta1/servicenetworkingconnection/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/servicenetworking/v1beta1/servicenetworkingconnection/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/serviceusage/v1beta1/service/_generated_object_service.golden.yaml b/pkg/test/resourcefixture/testdata/basic/serviceusage/v1beta1/service/_generated_object_service.golden.yaml index e459b79626..34241abc01 100644 --- a/pkg/test/resourcefixture/testdata/basic/serviceusage/v1beta1/service/_generated_object_service.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/serviceusage/v1beta1/service/_generated_object_service.golden.yaml @@ -18,7 +18,7 @@ metadata: annotations: cnrm.cloud.google.com/disable-dependent-services: "false" cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/serviceusage/v1beta1/service/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/serviceusage/v1beta1/service/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/serviceusage/v1beta1/service/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/serviceusage/v1beta1/service/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/serviceusage/v1beta1/serviceidentity/_generated_object_serviceidentity.golden.yaml b/pkg/test/resourcefixture/testdata/basic/serviceusage/v1beta1/serviceidentity/_generated_object_serviceidentity.golden.yaml index e070190e14..02058631ed 100644 --- a/pkg/test/resourcefixture/testdata/basic/serviceusage/v1beta1/serviceidentity/_generated_object_serviceidentity.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/serviceusage/v1beta1/serviceidentity/_generated_object_serviceidentity.golden.yaml @@ -17,7 +17,7 @@ kind: ServiceIdentity metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/sourcerepo/v1beta1/sourcereporepository/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/sourcerepo/v1beta1/sourcereporepository/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/sourcerepo/v1beta1/sourcereporepository/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/sourcerepo/v1beta1/sourcereporepository/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/spanner/v1beta1/spannerdatabase/_generated_object_spannerdatabase.golden.yaml b/pkg/test/resourcefixture/testdata/basic/spanner/v1beta1/spannerdatabase/_generated_object_spannerdatabase.golden.yaml index eb3ea94c52..ee30273e97 100644 --- a/pkg/test/resourcefixture/testdata/basic/spanner/v1beta1/spannerdatabase/_generated_object_spannerdatabase.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/spanner/v1beta1/spannerdatabase/_generated_object_spannerdatabase.golden.yaml @@ -6,7 +6,7 @@ metadata: cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"ddl":["CREATE TABLE t1 (t1 INT64 NOT NULL,) PRIMARY KEY(t1)"]}}' cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -16,13 +16,11 @@ metadata: name: spannerdb-${uniqueId} namespace: ${uniqueId} spec: - databaseDialect: GOOGLE_STANDARD_SQL ddl: - CREATE TABLE t1 (t1 INT64 NOT NULL,) PRIMARY KEY(t1) instanceRef: name: spannerinstance-${uniqueId} resourceID: spannerdb-${uniqueId} - versionRetentionPeriod: 1h status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/basic/spanner/v1beta1/spannerdatabase/_vcr_cassettes/dcl.yaml b/pkg/test/resourcefixture/testdata/basic/spanner/v1beta1/spannerdatabase/_vcr_cassettes/nontf.yaml similarity index 100% rename from pkg/test/resourcefixture/testdata/basic/spanner/v1beta1/spannerdatabase/_vcr_cassettes/dcl.yaml rename to pkg/test/resourcefixture/testdata/basic/spanner/v1beta1/spannerdatabase/_vcr_cassettes/nontf.yaml diff --git a/pkg/test/resourcefixture/testdata/basic/spanner/v1beta1/spannerinstance/_generated_object_spannerinstance.golden.yaml b/pkg/test/resourcefixture/testdata/basic/spanner/v1beta1/spannerinstance/_generated_object_spannerinstance.golden.yaml index eb7dbcb14c..556ad3e9a2 100644 --- a/pkg/test/resourcefixture/testdata/basic/spanner/v1beta1/spannerinstance/_generated_object_spannerinstance.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/spanner/v1beta1/spannerinstance/_generated_object_spannerinstance.golden.yaml @@ -4,11 +4,11 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 4 + generation: 3 labels: cnrm-test: "true" label-one: value-one @@ -18,7 +18,6 @@ spec: config: regional-us-west1 displayName: Spanner Instance Sample numNodes: 3 - processingUnits: 3000 resourceID: spannerinstance-sample-${uniqueId} status: conditions: @@ -27,5 +26,5 @@ status: reason: UpToDate status: "True" type: Ready - observedGeneration: 4 + observedGeneration: 3 state: READY diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-authorizednetworks/_generated_object_sqlinstance-authorizednetworks.golden.yaml b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-authorizednetworks/_generated_object_sqlinstance-authorizednetworks.golden.yaml index 803b6773c6..eb861aee05 100644 --- a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-authorizednetworks/_generated_object_sqlinstance-authorizednetworks.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-authorizednetworks/_generated_object_sqlinstance-authorizednetworks.golden.yaml @@ -19,10 +19,10 @@ spec: settings: ipConfiguration: authorizedNetworks: - - expirationTime: "2099-01-01T00:00:00+00:00" + - expirationTime: "2099-01-01T00:00:00Z" name: all value: 0.0.0.0/0 - - expirationTime: "2100-01-01T00:00:00+00:00" + - expirationTime: "2100-01-01T00:00:00Z" name: my-network value: 1.2.3.0/24 locationPreference: diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-authorizednetworks/_http.log b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-authorizednetworks/_http.log index b4413ce6c2..ffabbec094 100644 --- a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-authorizednetworks/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-authorizednetworks/_http.log @@ -44,7 +44,7 @@ User-Agent: kcc/controller-manager "ipConfiguration": { "authorizedNetworks": [ { - "expirationTime": "2099-01-01T00:00:00+00:00", + "expirationTime": "2099-01-01T00:00:00Z", "kind": "sql#aclEntry", "name": "all", "value": "0.0.0.0/0" @@ -52,6 +52,7 @@ User-Agent: kcc/controller-manager ] }, "locationPreference": { + "kind": "sql#locationPreference", "zone": "us-central1-a" }, "pricingPlan": "PER_USE", @@ -393,13 +394,13 @@ User-Agent: kcc/controller-manager "ipConfiguration": { "authorizedNetworks": [ { - "expirationTime": "2099-01-01T00:00:00+00:00", + "expirationTime": "2099-01-01T00:00:00Z", "kind": "sql#aclEntry", "name": "all", "value": "0.0.0.0/0" }, { - "expirationTime": "2100-01-01T00:00:00+00:00", + "expirationTime": "2100-01-01T00:00:00Z", "kind": "sql#aclEntry", "name": "my-network", "value": "1.2.3.0/24" @@ -407,6 +408,7 @@ User-Agent: kcc/controller-manager ] }, "locationPreference": { + "kind": "sql#locationPreference", "zone": "us-central1-a" }, "pricingPlan": "PER_USE", diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-authorizednetworks/create.yaml b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-authorizednetworks/create.yaml index 6642834e90..278409fd6f 100644 --- a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-authorizednetworks/create.yaml +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-authorizednetworks/create.yaml @@ -26,7 +26,7 @@ spec: authorizedNetworks: - name: all value: 0.0.0.0/0 - expirationTime: 2099-01-01T00:00:00+00:00 + expirationTime: 2099-01-01T00:00:00Z # Location preference is not actually a required field. However, setting it for tests # helps with with normalizing the GCP responses, because otherwise GCP chooses a zone # preference based on availability. Therefore it could potentially vary if not diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-authorizednetworks/update.yaml b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-authorizednetworks/update.yaml index e14a0f93ab..0f692d800b 100644 --- a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-authorizednetworks/update.yaml +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-authorizednetworks/update.yaml @@ -26,10 +26,10 @@ spec: authorizedNetworks: - name: all value: 0.0.0.0/0 - expirationTime: 2099-01-01T00:00:00+00:00 + expirationTime: 2099-01-01T00:00:00Z - name: my-network value: 1.2.3.0/24 - expirationTime: 2100-01-01T00:00:00+00:00 + expirationTime: 2100-01-01T00:00:00Z # Location preference is not actually a required field. However, setting it for tests # helps with with normalizing the GCP responses, because otherwise GCP chooses a zone # preference based on availability. Therefore it could potentially vary if not diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-clone-minimal/_http.log b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-clone-minimal/_http.log index 51bb26f692..e741ba719a 100644 --- a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-clone-minimal/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-clone-minimal/_http.log @@ -46,6 +46,7 @@ User-Agent: kcc/controller-manager "dataDiskType": "PD_SSD", "edition": "ENTERPRISE", "locationPreference": { + "kind": "sql#locationPreference", "zone": "us-central1-a" }, "pricingPlan": "PER_USE", diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-encryptionkey/_http.log b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-encryptionkey/_http.log index f3931020d1..30aec2351e 100644 --- a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-encryptionkey/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-encryptionkey/_http.log @@ -415,7 +415,19 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", - "purpose": "ENCRYPT_DECRYPT" + "primary": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, + "purpose": "ENCRYPT_DECRYPT", + "versionTemplate": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "protectionLevel": "SOFTWARE" + } } --- @@ -443,7 +455,19 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", - "purpose": "ENCRYPT_DECRYPT" + "primary": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, + "purpose": "ENCRYPT_DECRYPT", + "versionTemplate": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "protectionLevel": "SOFTWARE" + } } --- @@ -642,10 +666,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- @@ -1006,6 +1066,7 @@ User-Agent: kcc/controller-manager "requireSsl": true }, "locationPreference": { + "kind": "sql#locationPreference", "zone": "us-central1-b" }, "maintenanceWindow": { @@ -1177,12 +1238,12 @@ X-Xss-Protection: 0 "ipv4Enabled": false, "privateNetwork": "projects/${projectId}/global/networks/computenetwork-${uniqueId}", "requireSsl": true, - "sslMode": "ALLOW_UNENCRYPTED_AND_ENCRYPTED" + "sslMode": "TRUSTED_CLIENT_CERTIFICATE_REQUIRED" }, "kind": "sql#settings", "locationPreference": { "kind": "sql#locationPreference", - "zone": "us-central1-a" + "zone": "us-central1-b" }, "maintenanceWindow": { "day": 6, @@ -1341,12 +1402,12 @@ X-Xss-Protection: 0 "ipv4Enabled": false, "privateNetwork": "projects/${projectId}/global/networks/computenetwork-${uniqueId}", "requireSsl": true, - "sslMode": "ALLOW_UNENCRYPTED_AND_ENCRYPTED" + "sslMode": "TRUSTED_CLIENT_CERTIFICATE_REQUIRED" }, "kind": "sql#settings", "locationPreference": { "kind": "sql#locationPreference", - "zone": "us-central1-a" + "zone": "us-central1-b" }, "maintenanceWindow": { "day": 6, @@ -1429,6 +1490,7 @@ User-Agent: kcc/controller-manager "requireSsl": true }, "locationPreference": { + "kind": "sql#locationPreference", "zone": "us-central1-b" }, "maintenanceWindow": { @@ -1602,12 +1664,12 @@ X-Xss-Protection: 0 "ipv4Enabled": false, "privateNetwork": "projects/${projectId}/global/networks/computenetwork-${uniqueId}", "requireSsl": true, - "sslMode": "ALLOW_UNENCRYPTED_AND_ENCRYPTED" + "sslMode": "TRUSTED_CLIENT_CERTIFICATE_REQUIRED" }, "kind": "sql#settings", "locationPreference": { "kind": "sql#locationPreference", - "zone": "us-central1-a" + "zone": "us-central1-b" }, "maintenanceWindow": { "day": 6, @@ -1858,10 +1920,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- @@ -1982,7 +2080,19 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", - "purpose": "ENCRYPT_DECRYPT" + "primary": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, + "purpose": "ENCRYPT_DECRYPT", + "versionTemplate": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "protectionLevel": "SOFTWARE" + } } --- @@ -2004,7 +2114,7 @@ X-Xss-Protection: 0 { "cryptoKeyVersions": [ { - "algorithm": "EC_SIGN_P384_SHA384", + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", "createTime": "2024-04-01T12:34:56.123456Z", "generateTime": "2024-04-01T12:34:56.123456Z", "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", @@ -2035,7 +2145,7 @@ X-Frame-Options: SAMEORIGIN X-Xss-Protection: 0 { - "algorithm": "EC_SIGN_P384_SHA384", + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", "createTime": "2024-04-01T12:34:56.123456Z", "destroyTime": "2024-04-01T12:34:56.123456Z", "generateTime": "2024-04-01T12:34:56.123456Z", diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-locationpreference/_generated_object_sqlinstance-locationpreference.golden.yaml b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-locationpreference/_generated_object_sqlinstance-locationpreference.golden.yaml new file mode 100644 index 0000000000..65a052b5a3 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-locationpreference/_generated_object_sqlinstance-locationpreference.golden.yaml @@ -0,0 +1,47 @@ +apiVersion: sql.cnrm.cloud.google.com/v1beta1 +kind: SQLInstance +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/project-id: ${projectId} + cnrm.cloud.google.com/state-into-spec: absent + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 2 + labels: + cnrm-test: "true" + name: sqlinstance-locationpreference-${uniqueId} + namespace: ${uniqueId} +spec: + databaseVersion: POSTGRES_16 + region: us-central1 + settings: + availabilityType: REGIONAL + locationPreference: + secondaryZone: us-central1-c + zone: us-central1-b + tier: db-custom-1-3840 +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + connectionName: ${projectId}:us-central1:sqlinstance-locationpreference-${uniqueId} + firstIpAddress: 10.1.2.3 + instanceType: CLOUD_SQL_INSTANCE + ipAddress: 10.1.2.3 + observedGeneration: 2 + publicIpAddress: 10.1.2.3 + selfLink: https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-locationpreference-${uniqueId} + serverCaCert: + cert: | + -----BEGIN CERTIFICATE----- + -----END CERTIFICATE----- + commonName: common-name + createTime: "1970-01-01T00:00:00Z" + expirationTime: "1970-01-01T00:00:00Z" + sha1Fingerprint: "12345678" + serviceAccountEmailAddress: p${projectNumber}-abcdef@gcp-sa-cloud-sql.iam.gserviceaccount.com diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-locationpreference/_http.log b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-locationpreference/_http.log new file mode 100644 index 0000000000..2007867751 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-locationpreference/_http.log @@ -0,0 +1,590 @@ +GET https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-locationpreference-${uniqueId}?alt=json&prettyPrint=false +User-Agent: kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "The Cloud SQL instance does not exist.", + "reason": "instanceDoesNotExist" + } + ], + "message": "The Cloud SQL instance does not exist." + } +} + +--- + +POST https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances?alt=json&prettyPrint=false +Content-Type: application/json +User-Agent: kcc/controller-manager + +{ + "databaseVersion": "POSTGRES_16", + "name": "sqlinstance-locationpreference-${uniqueId}", + "region": "us-central1", + "settings": { + "activationPolicy": "ALWAYS", + "availabilityType": "ZONAL", + "dataDiskType": "PD_SSD", + "edition": "ENTERPRISE", + "locationPreference": { + "kind": "sql#locationPreference", + "zone": "us-central1-a" + }, + "pricingPlan": "PER_USE", + "storageAutoResize": true, + "tier": "db-custom-1-3840", + "userLabels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + } + } +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "sql#operation", + "name": "${operationID}", + "operationType": "CREATE", + "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/operations/${operationID}", + "status": "PENDING", + "targetId": "sqlinstance-locationpreference-${uniqueId}", + "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-locationpreference-${uniqueId}", + "targetProject": "${projectId}", + "user": "user@example.com" +} + +--- + +GET https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "sql#operation", + "name": "${operationID}", + "operationType": "CREATE", + "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/operations/${operationID}", + "status": "DONE", + "targetId": "sqlinstance-locationpreference-${uniqueId}", + "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-locationpreference-${uniqueId}", + "targetProject": "${projectId}", + "user": "user@example.com" +} + +--- + +GET https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-locationpreference-${uniqueId}?alt=json&prettyPrint=false +User-Agent: kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "backendType": "SECOND_GEN", + "connectionName": "${projectId}:us-central1:sqlinstance-locationpreference-${uniqueId}", + "createTime": "2024-04-01T12:34:56.123456Z", + "databaseInstalledVersion": "POSTGRES_16_3", + "databaseVersion": "POSTGRES_16", + "etag": "abcdef0123A=", + "gceZone": "us-central1-a", + "geminiConfig": { + "activeQueryEnabled": false, + "entitled": false, + "googleVacuumMgmtEnabled": false, + "indexAdvisorEnabled": false, + "oomSessionCancelEnabled": false + }, + "instanceType": "CLOUD_SQL_INSTANCE", + "ipAddresses": [ + { + "ipAddress": "10.1.2.3", + "type": "PRIMARY" + }, + { + "ipAddress": "10.1.2.3", + "type": "OUTGOING" + } + ], + "kind": "sql#instance", + "maintenanceVersion": "POSTGRES_16_3.R20240527.01_10", + "name": "sqlinstance-locationpreference-${uniqueId}", + "project": "${projectId}", + "region": "us-central1", + "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-locationpreference-${uniqueId}", + "serverCaCert": { + "cert": "-----BEGIN CERTIFICATE-----\n-----END CERTIFICATE-----\n", + "certSerialNumber": "0", + "commonName": "common-name", + "createTime": "2024-04-01T12:34:56.123456Z", + "expirationTime": "2024-04-01T12:34:56.123456Z", + "instance": "sqlinstance-locationpreference-${uniqueId}", + "kind": "sql#sslCert", + "sha1Fingerprint": "12345678" + }, + "serviceAccountEmailAddress": "p${projectNumber}-abcdef@gcp-sa-cloud-sql.iam.gserviceaccount.com", + "settings": { + "activationPolicy": "ALWAYS", + "authorizedGaeApplications": [], + "availabilityType": "ZONAL", + "backupConfiguration": { + "backupRetentionSettings": { + "retainedBackups": 7, + "retentionUnit": "COUNT" + }, + "enabled": false, + "kind": "sql#backupConfiguration", + "startTime": "12:00", + "transactionLogRetentionDays": 7, + "transactionalLogStorageState": "TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED" + }, + "connectorEnforcement": "NOT_REQUIRED", + "dataDiskSizeGb": "10", + "dataDiskType": "PD_SSD", + "deletionProtectionEnabled": false, + "edition": "ENTERPRISE", + "ipConfiguration": { + "authorizedNetworks": [], + "ipv4Enabled": true, + "requireSsl": false, + "sslMode": "ALLOW_UNENCRYPTED_AND_ENCRYPTED" + }, + "kind": "sql#settings", + "locationPreference": { + "kind": "sql#locationPreference", + "zone": "us-central1-a" + }, + "pricingPlan": "PER_USE", + "replicationType": "SYNCHRONOUS", + "settingsVersion": "123", + "storageAutoResize": true, + "storageAutoResizeLimit": "0", + "tier": "db-custom-1-3840", + "userLabels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + } + }, + "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE", + "state": "RUNNABLE" +} + +--- + +GET https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-locationpreference-${uniqueId}/users?alt=json&prettyPrint=false +User-Agent: kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "items": [ + { + "etag": "abcdef0123A=", + "host": "", + "instance": "sqlinstance-locationpreference-${uniqueId}", + "kind": "sql#user", + "name": "postgres", + "project": "${projectId}" + } + ], + "kind": "sql#usersList" +} + +--- + +GET https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-locationpreference-${uniqueId}?alt=json&prettyPrint=false +User-Agent: kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "backendType": "SECOND_GEN", + "connectionName": "${projectId}:us-central1:sqlinstance-locationpreference-${uniqueId}", + "createTime": "2024-04-01T12:34:56.123456Z", + "databaseInstalledVersion": "POSTGRES_16_3", + "databaseVersion": "POSTGRES_16", + "etag": "abcdef0123A=", + "gceZone": "us-central1-a", + "geminiConfig": { + "activeQueryEnabled": false, + "entitled": false, + "googleVacuumMgmtEnabled": false, + "indexAdvisorEnabled": false, + "oomSessionCancelEnabled": false + }, + "instanceType": "CLOUD_SQL_INSTANCE", + "ipAddresses": [ + { + "ipAddress": "10.1.2.3", + "type": "PRIMARY" + }, + { + "ipAddress": "10.1.2.3", + "type": "OUTGOING" + } + ], + "kind": "sql#instance", + "maintenanceVersion": "POSTGRES_16_3.R20240527.01_10", + "name": "sqlinstance-locationpreference-${uniqueId}", + "project": "${projectId}", + "region": "us-central1", + "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-locationpreference-${uniqueId}", + "serverCaCert": { + "cert": "-----BEGIN CERTIFICATE-----\n-----END CERTIFICATE-----\n", + "certSerialNumber": "0", + "commonName": "common-name", + "createTime": "2024-04-01T12:34:56.123456Z", + "expirationTime": "2024-04-01T12:34:56.123456Z", + "instance": "sqlinstance-locationpreference-${uniqueId}", + "kind": "sql#sslCert", + "sha1Fingerprint": "12345678" + }, + "serviceAccountEmailAddress": "p${projectNumber}-abcdef@gcp-sa-cloud-sql.iam.gserviceaccount.com", + "settings": { + "activationPolicy": "ALWAYS", + "authorizedGaeApplications": [], + "availabilityType": "ZONAL", + "backupConfiguration": { + "backupRetentionSettings": { + "retainedBackups": 7, + "retentionUnit": "COUNT" + }, + "enabled": false, + "kind": "sql#backupConfiguration", + "startTime": "12:00", + "transactionLogRetentionDays": 7, + "transactionalLogStorageState": "TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED" + }, + "connectorEnforcement": "NOT_REQUIRED", + "dataDiskSizeGb": "10", + "dataDiskType": "PD_SSD", + "deletionProtectionEnabled": false, + "edition": "ENTERPRISE", + "ipConfiguration": { + "authorizedNetworks": [], + "ipv4Enabled": true, + "requireSsl": false, + "sslMode": "ALLOW_UNENCRYPTED_AND_ENCRYPTED" + }, + "kind": "sql#settings", + "locationPreference": { + "kind": "sql#locationPreference", + "zone": "us-central1-a" + }, + "pricingPlan": "PER_USE", + "replicationType": "SYNCHRONOUS", + "settingsVersion": "123", + "storageAutoResize": true, + "storageAutoResizeLimit": "0", + "tier": "db-custom-1-3840", + "userLabels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + } + }, + "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE", + "state": "RUNNABLE" +} + +--- + +PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-locationpreference-${uniqueId}?alt=json&prettyPrint=false +Content-Type: application/json +User-Agent: kcc/controller-manager + +{ + "databaseVersion": "POSTGRES_16", + "instanceType": "CLOUD_SQL_INSTANCE", + "maintenanceVersion": "POSTGRES_16_3.R20240527.01_10", + "name": "sqlinstance-locationpreference-${uniqueId}", + "region": "us-central1", + "settings": { + "activationPolicy": "ALWAYS", + "availabilityType": "REGIONAL", + "backupConfiguration": { + "backupRetentionSettings": { + "retainedBackups": 7, + "retentionUnit": "COUNT" + }, + "binaryLogEnabled": false, + "enabled": false, + "kind": "sql#backupConfiguration", + "pointInTimeRecoveryEnabled": false, + "startTime": "12:00", + "transactionLogRetentionDays": 7, + "transactionalLogStorageState": "TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED" + }, + "connectorEnforcement": "NOT_REQUIRED", + "dataDiskSizeGb": "10", + "dataDiskType": "PD_SSD", + "edition": "ENTERPRISE", + "locationPreference": { + "kind": "sql#locationPreference", + "secondaryZone": "us-central1-c", + "zone": "us-central1-b" + }, + "pricingPlan": "PER_USE", + "replicationType": "SYNCHRONOUS", + "settingsVersion": "123", + "storageAutoResize": true, + "tier": "db-custom-1-3840", + "userLabels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + } + } +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "sql#operation", + "name": "${operationID}", + "operationType": "UPDATE", + "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/operations/${operationID}", + "status": "PENDING", + "targetId": "sqlinstance-locationpreference-${uniqueId}", + "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-locationpreference-${uniqueId}", + "targetProject": "${projectId}", + "user": "user@example.com" +} + +--- + +GET https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "sql#operation", + "name": "${operationID}", + "operationType": "UPDATE", + "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/operations/${operationID}", + "status": "DONE", + "targetId": "sqlinstance-locationpreference-${uniqueId}", + "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-locationpreference-${uniqueId}", + "targetProject": "${projectId}", + "user": "user@example.com" +} + +--- + +GET https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-locationpreference-${uniqueId}?alt=json&prettyPrint=false +User-Agent: kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "backendType": "SECOND_GEN", + "connectionName": "${projectId}:us-central1:sqlinstance-locationpreference-${uniqueId}", + "createTime": "2024-04-01T12:34:56.123456Z", + "databaseInstalledVersion": "POSTGRES_16_3", + "databaseVersion": "POSTGRES_16", + "etag": "abcdef0123A=", + "gceZone": "us-central1-a", + "geminiConfig": { + "activeQueryEnabled": false, + "entitled": false, + "googleVacuumMgmtEnabled": false, + "indexAdvisorEnabled": false, + "oomSessionCancelEnabled": false + }, + "instanceType": "CLOUD_SQL_INSTANCE", + "ipAddresses": [ + { + "ipAddress": "10.1.2.3", + "type": "PRIMARY" + }, + { + "ipAddress": "10.1.2.3", + "type": "OUTGOING" + } + ], + "kind": "sql#instance", + "maintenanceVersion": "POSTGRES_16_3.R20240527.01_10", + "name": "sqlinstance-locationpreference-${uniqueId}", + "project": "${projectId}", + "region": "us-central1", + "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-locationpreference-${uniqueId}", + "serverCaCert": { + "cert": "-----BEGIN CERTIFICATE-----\n-----END CERTIFICATE-----\n", + "certSerialNumber": "0", + "commonName": "common-name", + "createTime": "2024-04-01T12:34:56.123456Z", + "expirationTime": "2024-04-01T12:34:56.123456Z", + "instance": "sqlinstance-locationpreference-${uniqueId}", + "kind": "sql#sslCert", + "sha1Fingerprint": "12345678" + }, + "serviceAccountEmailAddress": "p${projectNumber}-abcdef@gcp-sa-cloud-sql.iam.gserviceaccount.com", + "settings": { + "activationPolicy": "ALWAYS", + "authorizedGaeApplications": [], + "availabilityType": "REGIONAL", + "backupConfiguration": { + "backupRetentionSettings": { + "retainedBackups": 7, + "retentionUnit": "COUNT" + }, + "enabled": false, + "kind": "sql#backupConfiguration", + "pointInTimeRecoveryEnabled": false, + "replicationLogArchivingEnabled": false, + "startTime": "12:00", + "transactionLogRetentionDays": 7, + "transactionalLogStorageState": "TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED" + }, + "connectorEnforcement": "NOT_REQUIRED", + "dataDiskSizeGb": "10", + "dataDiskType": "PD_SSD", + "deletionProtectionEnabled": false, + "edition": "ENTERPRISE", + "ipConfiguration": { + "authorizedNetworks": [], + "ipv4Enabled": true, + "requireSsl": false, + "sslMode": "ALLOW_UNENCRYPTED_AND_ENCRYPTED" + }, + "kind": "sql#settings", + "locationPreference": { + "kind": "sql#locationPreference", + "secondaryZone": "us-central1-c", + "zone": "us-central1-b" + }, + "pricingPlan": "PER_USE", + "replicationType": "SYNCHRONOUS", + "settingsVersion": "123", + "storageAutoResize": true, + "storageAutoResizeLimit": "0", + "tier": "db-custom-1-3840", + "userLabels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + } + }, + "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE", + "state": "RUNNABLE" +} + +--- + +DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-locationpreference-${uniqueId}?alt=json&prettyPrint=false +User-Agent: kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "sql#operation", + "name": "${operationID}", + "operationType": "DELETE", + "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/operations/${operationID}", + "status": "PENDING", + "targetId": "sqlinstance-locationpreference-${uniqueId}", + "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-locationpreference-${uniqueId}", + "targetProject": "${projectId}", + "user": "user@example.com" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-locationpreference/create.yaml b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-locationpreference/create.yaml new file mode 100644 index 0000000000..b1433f0855 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-locationpreference/create.yaml @@ -0,0 +1,28 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: sql.cnrm.cloud.google.com/v1beta1 +kind: SQLInstance +metadata: + name: sqlinstance-locationpreference-${uniqueId} + annotations: + cnrm.cloud.google.com/state-into-spec: absent +spec: + databaseVersion: POSTGRES_16 + region: us-central1 + settings: + availabilityType: ZONAL + locationPreference: + zone: us-central1-a + tier: db-custom-1-3840 diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-locationpreference/update.yaml b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-locationpreference/update.yaml new file mode 100644 index 0000000000..425d7bbf72 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-locationpreference/update.yaml @@ -0,0 +1,29 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: sql.cnrm.cloud.google.com/v1beta1 +kind: SQLInstance +metadata: + name: sqlinstance-locationpreference-${uniqueId} + annotations: + cnrm.cloud.google.com/state-into-spec: absent +spec: + databaseVersion: POSTGRES_16 + region: us-central1 + settings: + availabilityType: REGIONAL + locationPreference: + zone: us-central1-b + secondaryZone: us-central1-c + tier: db-custom-1-3840 diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-mysql-minimal/_http.log b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-mysql-minimal/_http.log index 19b38b0e41..36bdf3124d 100644 --- a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-mysql-minimal/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-mysql-minimal/_http.log @@ -42,6 +42,7 @@ User-Agent: kcc/controller-manager "dataDiskType": "PD_SSD", "edition": "ENTERPRISE", "locationPreference": { + "kind": "sql#locationPreference", "zone": "us-central1-a" }, "pricingPlan": "PER_USE", @@ -797,6 +798,7 @@ User-Agent: kcc/controller-manager "dataDiskType": "PD_SSD", "edition": "ENTERPRISE", "locationPreference": { + "kind": "sql#locationPreference", "zone": "us-central1-a" }, "pricingPlan": "PER_USE", diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-mysql/_http.log b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-mysql/_http.log index 423ecf765f..82902a4fb7 100644 --- a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-mysql/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-mysql/_http.log @@ -573,10 +573,6 @@ User-Agent: kcc/controller-manager "dataDiskSizeGb": "20", "dataDiskType": "PD_SSD", "edition": "ENTERPRISE", - "locationPreference": { - "kind": "sql#locationPreference", - "zone": "us-central1-a" - }, "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "settingsVersion": "123", diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-postgres-minimal/_http.log b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-postgres-minimal/_http.log index d8221201ea..bdb8993ee6 100644 --- a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-postgres-minimal/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-postgres-minimal/_http.log @@ -42,6 +42,7 @@ User-Agent: kcc/controller-manager "dataDiskType": "PD_SSD", "edition": "ENTERPRISE", "locationPreference": { + "kind": "sql#locationPreference", "zone": "us-central1-a" }, "pricingPlan": "PER_USE", @@ -564,6 +565,7 @@ User-Agent: kcc/controller-manager "dataDiskType": "PD_SSD", "edition": "ENTERPRISE", "locationPreference": { + "kind": "sql#locationPreference", "zone": "us-central1-a" }, "pricingPlan": "PER_USE", diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-postgres/_http.log b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-postgres/_http.log index 59340d6c87..ec6534d378 100644 --- a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-postgres/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-postgres/_http.log @@ -190,10 +190,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- @@ -954,10 +990,6 @@ User-Agent: kcc/controller-manager "requireSsl": false, "sslMode": "ENCRYPTED_ONLY" }, - "locationPreference": { - "kind": "sql#locationPreference", - "zone": "us-central1-a" - }, "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "settingsVersion": "123", @@ -1368,10 +1400,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-privatenetwork/_http.log b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-privatenetwork/_http.log index 90dbf493d7..279037c16f 100644 --- a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-privatenetwork/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-privatenetwork/_http.log @@ -342,10 +342,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- @@ -974,10 +1010,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress2-${uniqueId}", + "user": "user@example.com" } --- @@ -1312,6 +1384,7 @@ User-Agent: kcc/controller-manager "privateNetwork": "projects/${projectId}/global/networks/computenetwork-${uniqueId}" }, "locationPreference": { + "kind": "sql#locationPreference", "zone": "us-central1-a" }, "pricingPlan": "PER_USE", @@ -1655,6 +1728,7 @@ User-Agent: kcc/controller-manager "privateNetwork": "projects/${projectId}/global/networks/computenetwork2-${uniqueId}" }, "locationPreference": { + "kind": "sql#locationPreference", "zone": "us-central1-a" }, "pricingPlan": "PER_USE", @@ -2050,10 +2124,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress2-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress2-${uniqueId}", + "user": "user@example.com" } --- @@ -2353,10 +2463,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-sqlserver-minimal/_http.log b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-sqlserver-minimal/_http.log index 12bba441e7..f7296e9628 100644 --- a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-sqlserver-minimal/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-sqlserver-minimal/_http.log @@ -43,6 +43,7 @@ User-Agent: kcc/controller-manager "dataDiskType": "PD_SSD", "edition": "ENTERPRISE", "locationPreference": { + "kind": "sql#locationPreference", "zone": "us-central1-a" }, "pricingPlan": "PER_USE", @@ -637,6 +638,7 @@ User-Agent: kcc/controller-manager "dataDiskType": "PD_SSD", "edition": "ENTERPRISE", "locationPreference": { + "kind": "sql#locationPreference", "zone": "us-central1-a" }, "pricingPlan": "PER_USE", diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-sqlserver/_http.log b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-sqlserver/_http.log index 6922aa843f..33e57cde45 100644 --- a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-sqlserver/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-sqlserver/_http.log @@ -539,10 +539,6 @@ User-Agent: kcc/controller-manager "dataDiskSizeGb": "20", "dataDiskType": "PD_SSD", "edition": "ENTERPRISE", - "locationPreference": { - "kind": "sql#locationPreference", - "zone": "us-central1-a" - }, "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "settingsVersion": "123", diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-ssl/_generated_object_sqlinstance-ssl.golden.yaml b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-ssl/_generated_object_sqlinstance-ssl.golden.yaml new file mode 100644 index 0000000000..c8df384158 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-ssl/_generated_object_sqlinstance-ssl.golden.yaml @@ -0,0 +1,48 @@ +apiVersion: sql.cnrm.cloud.google.com/v1beta1 +kind: SQLInstance +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/project-id: ${projectId} + cnrm.cloud.google.com/state-into-spec: absent + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 2 + labels: + cnrm-test: "true" + name: sqlinstance-ssl-${uniqueId} + namespace: ${uniqueId} +spec: + databaseVersion: POSTGRES_16 + region: us-central1 + settings: + ipConfiguration: + requireSsl: false + sslMode: ENCRYPTED_ONLY + locationPreference: + zone: us-central1-a + tier: db-custom-1-3840 +status: + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + connectionName: ${projectId}:us-central1:sqlinstance-ssl-${uniqueId} + firstIpAddress: 10.1.2.3 + instanceType: CLOUD_SQL_INSTANCE + ipAddress: 10.1.2.3 + observedGeneration: 2 + publicIpAddress: 10.1.2.3 + selfLink: https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-ssl-${uniqueId} + serverCaCert: + cert: | + -----BEGIN CERTIFICATE----- + -----END CERTIFICATE----- + commonName: common-name + createTime: "1970-01-01T00:00:00Z" + expirationTime: "1970-01-01T00:00:00Z" + sha1Fingerprint: "12345678" + serviceAccountEmailAddress: p${projectNumber}-abcdef@gcp-sa-cloud-sql.iam.gserviceaccount.com diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-ssl/_http.log b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-ssl/_http.log new file mode 100644 index 0000000000..347a86ff87 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-ssl/_http.log @@ -0,0 +1,595 @@ +GET https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-ssl-${uniqueId}?alt=json&prettyPrint=false +User-Agent: kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "The Cloud SQL instance does not exist.", + "reason": "instanceDoesNotExist" + } + ], + "message": "The Cloud SQL instance does not exist." + } +} + +--- + +POST https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances?alt=json&prettyPrint=false +Content-Type: application/json +User-Agent: kcc/controller-manager + +{ + "databaseVersion": "POSTGRES_16", + "name": "sqlinstance-ssl-${uniqueId}", + "region": "us-central1", + "settings": { + "activationPolicy": "ALWAYS", + "availabilityType": "ZONAL", + "dataDiskType": "PD_SSD", + "edition": "ENTERPRISE", + "ipConfiguration": { + "requireSsl": true + }, + "locationPreference": { + "kind": "sql#locationPreference", + "zone": "us-central1-a" + }, + "pricingPlan": "PER_USE", + "storageAutoResize": true, + "tier": "db-custom-1-3840", + "userLabels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + } + } +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "sql#operation", + "name": "${operationID}", + "operationType": "CREATE", + "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/operations/${operationID}", + "status": "PENDING", + "targetId": "sqlinstance-ssl-${uniqueId}", + "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-ssl-${uniqueId}", + "targetProject": "${projectId}", + "user": "user@example.com" +} + +--- + +GET https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "sql#operation", + "name": "${operationID}", + "operationType": "CREATE", + "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/operations/${operationID}", + "status": "DONE", + "targetId": "sqlinstance-ssl-${uniqueId}", + "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-ssl-${uniqueId}", + "targetProject": "${projectId}", + "user": "user@example.com" +} + +--- + +GET https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-ssl-${uniqueId}?alt=json&prettyPrint=false +User-Agent: kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "backendType": "SECOND_GEN", + "connectionName": "${projectId}:us-central1:sqlinstance-ssl-${uniqueId}", + "createTime": "2024-04-01T12:34:56.123456Z", + "databaseInstalledVersion": "POSTGRES_16_3", + "databaseVersion": "POSTGRES_16", + "etag": "abcdef0123A=", + "gceZone": "us-central1-a", + "geminiConfig": { + "activeQueryEnabled": false, + "entitled": false, + "googleVacuumMgmtEnabled": false, + "indexAdvisorEnabled": false, + "oomSessionCancelEnabled": false + }, + "instanceType": "CLOUD_SQL_INSTANCE", + "ipAddresses": [ + { + "ipAddress": "10.1.2.3", + "type": "PRIMARY" + }, + { + "ipAddress": "10.1.2.3", + "type": "OUTGOING" + } + ], + "kind": "sql#instance", + "maintenanceVersion": "POSTGRES_16_3.R20240527.01_10", + "name": "sqlinstance-ssl-${uniqueId}", + "project": "${projectId}", + "region": "us-central1", + "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-ssl-${uniqueId}", + "serverCaCert": { + "cert": "-----BEGIN CERTIFICATE-----\n-----END CERTIFICATE-----\n", + "certSerialNumber": "0", + "commonName": "common-name", + "createTime": "2024-04-01T12:34:56.123456Z", + "expirationTime": "2024-04-01T12:34:56.123456Z", + "instance": "sqlinstance-ssl-${uniqueId}", + "kind": "sql#sslCert", + "sha1Fingerprint": "12345678" + }, + "serviceAccountEmailAddress": "p${projectNumber}-abcdef@gcp-sa-cloud-sql.iam.gserviceaccount.com", + "settings": { + "activationPolicy": "ALWAYS", + "authorizedGaeApplications": [], + "availabilityType": "ZONAL", + "backupConfiguration": { + "backupRetentionSettings": { + "retainedBackups": 7, + "retentionUnit": "COUNT" + }, + "enabled": false, + "kind": "sql#backupConfiguration", + "startTime": "12:00", + "transactionLogRetentionDays": 7, + "transactionalLogStorageState": "TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED" + }, + "connectorEnforcement": "NOT_REQUIRED", + "dataDiskSizeGb": "10", + "dataDiskType": "PD_SSD", + "deletionProtectionEnabled": false, + "edition": "ENTERPRISE", + "ipConfiguration": { + "authorizedNetworks": [], + "ipv4Enabled": true, + "requireSsl": true, + "sslMode": "TRUSTED_CLIENT_CERTIFICATE_REQUIRED" + }, + "kind": "sql#settings", + "locationPreference": { + "kind": "sql#locationPreference", + "zone": "us-central1-a" + }, + "pricingPlan": "PER_USE", + "replicationType": "SYNCHRONOUS", + "settingsVersion": "123", + "storageAutoResize": true, + "storageAutoResizeLimit": "0", + "tier": "db-custom-1-3840", + "userLabels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + } + }, + "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE", + "state": "RUNNABLE" +} + +--- + +GET https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-ssl-${uniqueId}/users?alt=json&prettyPrint=false +User-Agent: kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "items": [ + { + "etag": "abcdef0123A=", + "host": "", + "instance": "sqlinstance-ssl-${uniqueId}", + "kind": "sql#user", + "name": "postgres", + "project": "${projectId}" + } + ], + "kind": "sql#usersList" +} + +--- + +GET https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-ssl-${uniqueId}?alt=json&prettyPrint=false +User-Agent: kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "backendType": "SECOND_GEN", + "connectionName": "${projectId}:us-central1:sqlinstance-ssl-${uniqueId}", + "createTime": "2024-04-01T12:34:56.123456Z", + "databaseInstalledVersion": "POSTGRES_16_3", + "databaseVersion": "POSTGRES_16", + "etag": "abcdef0123A=", + "gceZone": "us-central1-a", + "geminiConfig": { + "activeQueryEnabled": false, + "entitled": false, + "googleVacuumMgmtEnabled": false, + "indexAdvisorEnabled": false, + "oomSessionCancelEnabled": false + }, + "instanceType": "CLOUD_SQL_INSTANCE", + "ipAddresses": [ + { + "ipAddress": "10.1.2.3", + "type": "PRIMARY" + }, + { + "ipAddress": "10.1.2.3", + "type": "OUTGOING" + } + ], + "kind": "sql#instance", + "maintenanceVersion": "POSTGRES_16_3.R20240527.01_10", + "name": "sqlinstance-ssl-${uniqueId}", + "project": "${projectId}", + "region": "us-central1", + "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-ssl-${uniqueId}", + "serverCaCert": { + "cert": "-----BEGIN CERTIFICATE-----\n-----END CERTIFICATE-----\n", + "certSerialNumber": "0", + "commonName": "common-name", + "createTime": "2024-04-01T12:34:56.123456Z", + "expirationTime": "2024-04-01T12:34:56.123456Z", + "instance": "sqlinstance-ssl-${uniqueId}", + "kind": "sql#sslCert", + "sha1Fingerprint": "12345678" + }, + "serviceAccountEmailAddress": "p${projectNumber}-abcdef@gcp-sa-cloud-sql.iam.gserviceaccount.com", + "settings": { + "activationPolicy": "ALWAYS", + "authorizedGaeApplications": [], + "availabilityType": "ZONAL", + "backupConfiguration": { + "backupRetentionSettings": { + "retainedBackups": 7, + "retentionUnit": "COUNT" + }, + "enabled": false, + "kind": "sql#backupConfiguration", + "startTime": "12:00", + "transactionLogRetentionDays": 7, + "transactionalLogStorageState": "TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED" + }, + "connectorEnforcement": "NOT_REQUIRED", + "dataDiskSizeGb": "10", + "dataDiskType": "PD_SSD", + "deletionProtectionEnabled": false, + "edition": "ENTERPRISE", + "ipConfiguration": { + "authorizedNetworks": [], + "ipv4Enabled": true, + "requireSsl": true, + "sslMode": "TRUSTED_CLIENT_CERTIFICATE_REQUIRED" + }, + "kind": "sql#settings", + "locationPreference": { + "kind": "sql#locationPreference", + "zone": "us-central1-a" + }, + "pricingPlan": "PER_USE", + "replicationType": "SYNCHRONOUS", + "settingsVersion": "123", + "storageAutoResize": true, + "storageAutoResizeLimit": "0", + "tier": "db-custom-1-3840", + "userLabels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + } + }, + "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE", + "state": "RUNNABLE" +} + +--- + +PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-ssl-${uniqueId}?alt=json&prettyPrint=false +Content-Type: application/json +User-Agent: kcc/controller-manager + +{ + "databaseVersion": "POSTGRES_16", + "instanceType": "CLOUD_SQL_INSTANCE", + "maintenanceVersion": "POSTGRES_16_3.R20240527.01_10", + "name": "sqlinstance-ssl-${uniqueId}", + "region": "us-central1", + "settings": { + "activationPolicy": "ALWAYS", + "availabilityType": "ZONAL", + "backupConfiguration": { + "backupRetentionSettings": { + "retainedBackups": 7, + "retentionUnit": "COUNT" + }, + "binaryLogEnabled": false, + "enabled": false, + "kind": "sql#backupConfiguration", + "pointInTimeRecoveryEnabled": false, + "startTime": "12:00", + "transactionLogRetentionDays": 7, + "transactionalLogStorageState": "TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED" + }, + "connectorEnforcement": "NOT_REQUIRED", + "dataDiskSizeGb": "10", + "dataDiskType": "PD_SSD", + "edition": "ENTERPRISE", + "ipConfiguration": { + "requireSsl": false, + "sslMode": "ENCRYPTED_ONLY" + }, + "locationPreference": { + "kind": "sql#locationPreference", + "zone": "us-central1-a" + }, + "pricingPlan": "PER_USE", + "replicationType": "SYNCHRONOUS", + "settingsVersion": "123", + "storageAutoResize": true, + "tier": "db-custom-1-3840", + "userLabels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + } + } +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "sql#operation", + "name": "${operationID}", + "operationType": "UPDATE", + "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/operations/${operationID}", + "status": "PENDING", + "targetId": "sqlinstance-ssl-${uniqueId}", + "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-ssl-${uniqueId}", + "targetProject": "${projectId}", + "user": "user@example.com" +} + +--- + +GET https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "sql#operation", + "name": "${operationID}", + "operationType": "UPDATE", + "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/operations/${operationID}", + "status": "DONE", + "targetId": "sqlinstance-ssl-${uniqueId}", + "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-ssl-${uniqueId}", + "targetProject": "${projectId}", + "user": "user@example.com" +} + +--- + +GET https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-ssl-${uniqueId}?alt=json&prettyPrint=false +User-Agent: kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "backendType": "SECOND_GEN", + "connectionName": "${projectId}:us-central1:sqlinstance-ssl-${uniqueId}", + "createTime": "2024-04-01T12:34:56.123456Z", + "databaseInstalledVersion": "POSTGRES_16_3", + "databaseVersion": "POSTGRES_16", + "etag": "abcdef0123A=", + "gceZone": "us-central1-a", + "geminiConfig": { + "activeQueryEnabled": false, + "entitled": false, + "googleVacuumMgmtEnabled": false, + "indexAdvisorEnabled": false, + "oomSessionCancelEnabled": false + }, + "instanceType": "CLOUD_SQL_INSTANCE", + "ipAddresses": [ + { + "ipAddress": "10.1.2.3", + "type": "PRIMARY" + }, + { + "ipAddress": "10.1.2.3", + "type": "OUTGOING" + } + ], + "kind": "sql#instance", + "maintenanceVersion": "POSTGRES_16_3.R20240527.01_10", + "name": "sqlinstance-ssl-${uniqueId}", + "project": "${projectId}", + "region": "us-central1", + "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-ssl-${uniqueId}", + "serverCaCert": { + "cert": "-----BEGIN CERTIFICATE-----\n-----END CERTIFICATE-----\n", + "certSerialNumber": "0", + "commonName": "common-name", + "createTime": "2024-04-01T12:34:56.123456Z", + "expirationTime": "2024-04-01T12:34:56.123456Z", + "instance": "sqlinstance-ssl-${uniqueId}", + "kind": "sql#sslCert", + "sha1Fingerprint": "12345678" + }, + "serviceAccountEmailAddress": "p${projectNumber}-abcdef@gcp-sa-cloud-sql.iam.gserviceaccount.com", + "settings": { + "activationPolicy": "ALWAYS", + "authorizedGaeApplications": [], + "availabilityType": "ZONAL", + "backupConfiguration": { + "backupRetentionSettings": { + "retainedBackups": 7, + "retentionUnit": "COUNT" + }, + "enabled": false, + "kind": "sql#backupConfiguration", + "pointInTimeRecoveryEnabled": false, + "replicationLogArchivingEnabled": false, + "startTime": "12:00", + "transactionLogRetentionDays": 7, + "transactionalLogStorageState": "TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED" + }, + "connectorEnforcement": "NOT_REQUIRED", + "dataDiskSizeGb": "10", + "dataDiskType": "PD_SSD", + "deletionProtectionEnabled": false, + "edition": "ENTERPRISE", + "ipConfiguration": { + "authorizedNetworks": [], + "ipv4Enabled": true, + "requireSsl": false, + "sslMode": "ENCRYPTED_ONLY" + }, + "kind": "sql#settings", + "locationPreference": { + "kind": "sql#locationPreference", + "zone": "us-central1-a" + }, + "pricingPlan": "PER_USE", + "replicationType": "SYNCHRONOUS", + "settingsVersion": "123", + "storageAutoResize": true, + "storageAutoResizeLimit": "0", + "tier": "db-custom-1-3840", + "userLabels": { + "cnrm-test": "true", + "managed-by-cnrm": "true" + } + }, + "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE", + "state": "RUNNABLE" +} + +--- + +DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-ssl-${uniqueId}?alt=json&prettyPrint=false +User-Agent: kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "sql#operation", + "name": "${operationID}", + "operationType": "DELETE", + "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/operations/${operationID}", + "status": "PENDING", + "targetId": "sqlinstance-ssl-${uniqueId}", + "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/${projectId}/instances/sqlinstance-ssl-${uniqueId}", + "targetProject": "${projectId}", + "user": "user@example.com" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-ssl/create.yaml b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-ssl/create.yaml new file mode 100644 index 0000000000..948b61b264 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-ssl/create.yaml @@ -0,0 +1,36 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: sql.cnrm.cloud.google.com/v1beta1 +kind: SQLInstance +metadata: + name: sqlinstance-ssl-${uniqueId} + annotations: + cnrm.cloud.google.com/state-into-spec: absent +spec: + databaseVersion: POSTGRES_16 + region: us-central1 + settings: + ipConfiguration: + # See https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/instances#ipconfiguration + # for docs about the different possible `sslMode` field values, and the limiations of the + # `requireSsl` field. + requireSsl: true + # Location preference is not actually a required field. However, setting it for tests + # helps with with normalizing the GCP responses, because otherwise GCP chooses a zone + # preference based on availability. Therefore it could potentially vary if not + # explicity specified. + locationPreference: + zone: us-central1-a + tier: db-custom-1-3840 diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-ssl/update.yaml b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-ssl/update.yaml new file mode 100644 index 0000000000..93fe5dbedf --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqlinstance/sqlinstance-ssl/update.yaml @@ -0,0 +1,37 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: sql.cnrm.cloud.google.com/v1beta1 +kind: SQLInstance +metadata: + name: sqlinstance-ssl-${uniqueId} + annotations: + cnrm.cloud.google.com/state-into-spec: absent +spec: + databaseVersion: POSTGRES_16 + region: us-central1 + settings: + ipConfiguration: + # See https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/instances#ipconfiguration + # for docs about the different possible `sslMode` field values, and the limiations of the + # `requireSsl` field. + requireSsl: false + sslMode: ENCRYPTED_ONLY + # Location preference is not actually a required field. However, setting it for tests + # helps with with normalizing the GCP responses, because otherwise GCP chooses a zone + # preference based on availability. Therefore it could potentially vary if not + # explicity specified. + locationPreference: + zone: us-central1-a + tier: db-custom-1-3840 diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqluser/_generated_object_sqluser.golden.yaml b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqluser/_generated_object_sqluser.golden.yaml index d13687e3d9..c172d27220 100644 --- a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqluser/_generated_object_sqluser.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqluser/_generated_object_sqluser.golden.yaml @@ -6,7 +6,7 @@ metadata: cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"password":{"valueFrom":{"secretKeyRef":{"key":"password","name":"sqluser-dep-${uniqueId}"}}}}}' cnrm.cloud.google.com/observed-secret-versions: (removed) cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqluser/_vcr_cassettes/nontf.yaml b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqluser/_vcr_cassettes/nontf.yaml new file mode 100644 index 0000000000..b4ae2f90b5 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqluser/_vcr_cassettes/nontf.yaml @@ -0,0 +1,317 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: sqladmin.googleapis.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 + url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp?alt=json&prettyPrint=false + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: true + body: fake error message + headers: + Content-Type: + - application/json; charset=UTF-8 + status: 404 Not Found + code: 404 + duration: 218.204951ms + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 339 + transfer_encoding: [] + trailer: {} + host: sqladmin.googleapis.com + remote_addr: "" + request_uri: "" + body: | + {"databaseVersion":"MYSQL_5_7","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","settings":{"activationPolicy":"ALWAYS","availabilityType":"ZONAL","dataDiskType":"PD_SSD","edition":"ENTERPRISE","pricingPlan":"PER_USE","storageAutoResize":true,"tier":"db-n1-standard-1","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"}}} + form: {} + headers: + Content-Type: + - application/json + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 + url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances?alt=json&prettyPrint=false + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: -1 + uncompressed: true + body: '{"kind":"sql#operation","targetLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","status":"PENDING","user":"user@google.com","insertTime":"2024-09-10T19:59:31.420Z","operationType":"CREATE","name":"68d7a6a1-ef57-4d6c-9c00-81ed00000032","targetId":"sqluser-dep-3vxr1tn21m3yp","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/operations/68d7a6a1-ef57-4d6c-9c00-81ed00000032","targetProject":"example-project"}' + headers: + Content-Type: + - application/json; charset=UTF-8 + status: 200 OK + code: 200 + duration: 952.45685ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: sqladmin.googleapis.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 + url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/operations/68d7a6a1-ef57-4d6c-9c00-81ed00000032?alt=json&prettyPrint=false + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: -1 + uncompressed: true + body: '{"kind":"sql#operation","targetLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","status":"DONE","user":"user@google.com","insertTime":"2024-09-10T19:59:31.420Z","startTime":"2024-09-10T19:59:31.592Z","endTime":"2024-09-10T20:02:05.957Z","operationType":"CREATE","name":"68d7a6a1-ef57-4d6c-9c00-81ed00000032","targetId":"sqluser-dep-3vxr1tn21m3yp","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/operations/68d7a6a1-ef57-4d6c-9c00-81ed00000032","targetProject":"example-project"}' + headers: + Content-Type: + - application/json; charset=UTF-8 + status: 200 OK + code: 200 + duration: 156.238986ms + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: sqladmin.googleapis.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 + url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp?alt=json&prettyPrint=false + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: -1 + uncompressed: true + body: '{"kind":"sql#instance","state":"RUNNABLE","databaseVersion":"MYSQL_5_7","settings":{"authorizedGaeApplications":[],"tier":"db-n1-standard-1","kind":"sql#settings","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"},"availabilityType":"ZONAL","pricingPlan":"PER_USE","replicationType":"SYNCHRONOUS","activationPolicy":"ALWAYS","ipConfiguration":{"authorizedNetworks":[],"sslMode":"ALLOW_UNENCRYPTED_AND_ENCRYPTED","ipv4Enabled":true,"requireSsl":false,"serverCaMode":"GOOGLE_MANAGED_INTERNAL_CA"},"locationPreference":{"zone":"us-central1-b","kind":"sql#locationPreference"},"dataDiskType":"PD_SSD","backupConfiguration":{"startTime":"12:00","kind":"sql#backupConfiguration","backupRetentionSettings":{"retentionUnit":"COUNT","retainedBackups":7},"enabled":false,"transactionLogRetentionDays":7,"transactionalLogStorageState":"TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED"},"edition":"ENTERPRISE","connectorEnforcement":"NOT_REQUIRED","settingsVersion":"1","storageAutoResizeLimit":"0","storageAutoResize":true,"dataDiskSizeGb":"10","deletionProtectionEnabled":false},"etag":"7e5ef910ac028bd4fa1e7d9e14a652e02d4884ffb6371e9714c169d1775b20a6","ipAddresses":[{"type":"PRIMARY","ipAddress":"34.134.120.174"}],"serverCaCert":{"kind":"sql#sslCert","certSerialNumber":"0","cert":"-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADB3MS0wKwYDVQQuEyQ2ZDc4\nNjRhYS1kZTRjLTQ3NzktODlhYy04ZjQ5MzU2OGJlMWMxIzAhBgNVBAMTGkdvb2ds\nZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkG\nA1UEBhMCVVMwHhcNMjQwOTEwMTk1OTE3WhcNMzQwOTA4MjAwMDE3WjB3MS0wKwYD\nVQQuEyQ2ZDc4NjRhYS1kZTRjLTQ3NzktODlhYy04ZjQ5MzU2OGJlMWMxIzAhBgNV\nBAMTGkdvb2dsZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQCWaccnvek9H981161Q3ievYkifqtAxOc0ae5jN2fT8U1wyqjDFuJIR+8eNLIrO\naF4haqsBbyDYpLvlXCuGDj19kS6Jg9ZSvFOkGU01B0T4gtgR022YL9qR3Rh0Ps1/\n21yRdsleLQIQByTjFKaehz8OqcDhuYSbMv2WWh6y6xFKNbkuKmr3O1xxYdh3MdjJ\nQn/WankHyyIUXb03QXzCkDRNyerHQdypLFv7QF6zZXicqmdI/wJse2X+1nvMLnFG\n8IeeYleZ9If/qVr0WKVAkl5WhmDnZUh+oSsCqYFSe0/RXIc/MzukCEcYQFrq7H8m\nUzEgvnt7liJrzHX7R9/iBiezAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAw\nDQYJKoZIhvcNAQELBQADggEBAC/pl9wIwfHiUoAS2ZNUV+uRP97pJvBG2TYutfyL\no1ayLI4Bn6X0ovmehmsKZ4Bk7QDmBKiiffB5WdqxP/hQuLy1OVAhuV1fN9W3DODg\nkC4X3kcr/pmfjatOKkHBiEmfK6cJYnwKNcF7yvEh/IGRxXukb2UyhcLhDex4r9VI\nnyGYQEnqFW0EoJj1L4hhBg9etzCfe+g+oYC8I3HXW5SNpnbR7giKsJlRddA+MCDa\nDd5MPWcTNcQhIY07XnbJ+NLGjkcDFZ7GboW/YjRo0bZ183otyp9VIGqv9AEXBDRW\nNlhZng8xkS6RYdpmrUe2H41R4UBq/wdUxPyA98FiegC80VA=\n-----END CERTIFICATE-----","commonName":"C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=6d7864aa-de4c-4779-89ac-8f493568be1c","sha1Fingerprint":"ff02aab5ee467fbad7bf231d0b7a7b27a3c09c25","instance":"sqluser-dep-3vxr1tn21m3yp","createTime":"2024-09-10T19:59:17.731Z","expirationTime":"2034-09-08T20:00:17.731Z"},"instanceType":"CLOUD_SQL_INSTANCE","project":"example-project","serviceAccountEmailAddress":"p123456789-s1uauf@gcp-sa-cloud-sql.iam.gserviceaccount.com","backendType":"SECOND_GEN","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","connectionName":"example-project:us-central1:sqluser-dep-3vxr1tn21m3yp","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","gceZone":"us-central1-b","databaseInstalledVersion":"MYSQL_5_7_44","maintenanceVersion":"MYSQL_5_7_44.R20240527.01_12","upgradableDatabaseVersions":[{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0","displayName":"MySQL 8.0"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_18","displayName":"MySQL 8.0.18"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_26","displayName":"MySQL 8.0.26"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_27","displayName":"MySQL 8.0.27"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_28","displayName":"MySQL 8.0.28"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_29","displayName":"MySQL 8.0.29"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_30","displayName":"MySQL 8.0.30"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_31","displayName":"MySQL 8.0.31"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_32","displayName":"MySQL 8.0.32"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_33","displayName":"MySQL 8.0.33"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_34","displayName":"MySQL 8.0.34"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_35","displayName":"MySQL 8.0.35"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_36","displayName":"MySQL 8.0.36"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_37","displayName":"MySQL 8.0.37"}],"geminiConfig":{"entitled":false,"activeQueryEnabled":false,"indexAdvisorEnabled":false,"flagRecommenderEnabled":false},"createTime":"2024-09-10T19:59:31.050Z","sqlNetworkArchitecture":"NEW_NETWORK_ARCHITECTURE","satisfiesPzi":true}' + headers: + Content-Type: + - application/json; charset=UTF-8 + status: 200 OK + code: 200 + duration: 228.925859ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: sqladmin.googleapis.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 + url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp/users?alt=json&prettyPrint=false + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: -1 + uncompressed: true + body: '{"kind":"sql#usersList","items":[{"kind":"sql#user","etag":"17916c6875a2f4b13ce9345ea3170cb06fc14e942248cf3920f1f59ce2d8a331","name":"root","host":"%","instance":"sqluser-dep-3vxr1tn21m3yp","project":"example-project","passwordPolicy":{"status":{}}}]}' + headers: + Content-Type: + - application/json; charset=UTF-8 + status: 200 OK + code: 200 + duration: 275.798365ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: sqladmin.googleapis.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 + url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp/users?alt=json&host=%25&name=root&prettyPrint=false + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: -1 + uncompressed: true + body: '{"kind":"sql#operation","targetLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","status":"DONE","user":"user@google.com","insertTime":"2024-09-10T20:02:25.644Z","startTime":"2024-09-10T20:02:25.651Z","endTime":"2024-09-10T20:02:25.797Z","operationType":"DELETE_USER","name":"82d56ab2-761e-4cc3-b72c-9c9b00000032","targetId":"sqluser-dep-3vxr1tn21m3yp","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/operations/82d56ab2-761e-4cc3-b72c-9c9b00000032","targetProject":"example-project"}' + headers: + Content-Type: + - application/json; charset=UTF-8 + status: 200 OK + code: 200 + duration: 458.234838ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: sqladmin.googleapis.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 + url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp?alt=json&prettyPrint=false + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: -1 + uncompressed: true + body: '{"kind":"sql#instance","state":"RUNNABLE","databaseVersion":"MYSQL_5_7","settings":{"authorizedGaeApplications":[],"tier":"db-n1-standard-1","kind":"sql#settings","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"},"availabilityType":"ZONAL","pricingPlan":"PER_USE","replicationType":"SYNCHRONOUS","activationPolicy":"ALWAYS","ipConfiguration":{"authorizedNetworks":[],"sslMode":"ALLOW_UNENCRYPTED_AND_ENCRYPTED","ipv4Enabled":true,"requireSsl":false,"serverCaMode":"GOOGLE_MANAGED_INTERNAL_CA"},"locationPreference":{"zone":"us-central1-b","kind":"sql#locationPreference"},"dataDiskType":"PD_SSD","backupConfiguration":{"startTime":"12:00","kind":"sql#backupConfiguration","backupRetentionSettings":{"retentionUnit":"COUNT","retainedBackups":7},"enabled":false,"transactionLogRetentionDays":7,"transactionalLogStorageState":"TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED"},"edition":"ENTERPRISE","connectorEnforcement":"NOT_REQUIRED","settingsVersion":"1","storageAutoResizeLimit":"0","storageAutoResize":true,"dataDiskSizeGb":"10","deletionProtectionEnabled":false},"etag":"7e5ef910ac028bd4fa1e7d9e14a652e02d4884ffb6371e9714c169d1775b20a6","ipAddresses":[{"type":"PRIMARY","ipAddress":"34.134.120.174"}],"serverCaCert":{"kind":"sql#sslCert","certSerialNumber":"0","cert":"-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADB3MS0wKwYDVQQuEyQ2ZDc4\nNjRhYS1kZTRjLTQ3NzktODlhYy04ZjQ5MzU2OGJlMWMxIzAhBgNVBAMTGkdvb2ds\nZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkG\nA1UEBhMCVVMwHhcNMjQwOTEwMTk1OTE3WhcNMzQwOTA4MjAwMDE3WjB3MS0wKwYD\nVQQuEyQ2ZDc4NjRhYS1kZTRjLTQ3NzktODlhYy04ZjQ5MzU2OGJlMWMxIzAhBgNV\nBAMTGkdvb2dsZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQCWaccnvek9H981161Q3ievYkifqtAxOc0ae5jN2fT8U1wyqjDFuJIR+8eNLIrO\naF4haqsBbyDYpLvlXCuGDj19kS6Jg9ZSvFOkGU01B0T4gtgR022YL9qR3Rh0Ps1/\n21yRdsleLQIQByTjFKaehz8OqcDhuYSbMv2WWh6y6xFKNbkuKmr3O1xxYdh3MdjJ\nQn/WankHyyIUXb03QXzCkDRNyerHQdypLFv7QF6zZXicqmdI/wJse2X+1nvMLnFG\n8IeeYleZ9If/qVr0WKVAkl5WhmDnZUh+oSsCqYFSe0/RXIc/MzukCEcYQFrq7H8m\nUzEgvnt7liJrzHX7R9/iBiezAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAw\nDQYJKoZIhvcNAQELBQADggEBAC/pl9wIwfHiUoAS2ZNUV+uRP97pJvBG2TYutfyL\no1ayLI4Bn6X0ovmehmsKZ4Bk7QDmBKiiffB5WdqxP/hQuLy1OVAhuV1fN9W3DODg\nkC4X3kcr/pmfjatOKkHBiEmfK6cJYnwKNcF7yvEh/IGRxXukb2UyhcLhDex4r9VI\nnyGYQEnqFW0EoJj1L4hhBg9etzCfe+g+oYC8I3HXW5SNpnbR7giKsJlRddA+MCDa\nDd5MPWcTNcQhIY07XnbJ+NLGjkcDFZ7GboW/YjRo0bZ183otyp9VIGqv9AEXBDRW\nNlhZng8xkS6RYdpmrUe2H41R4UBq/wdUxPyA98FiegC80VA=\n-----END CERTIFICATE-----","commonName":"C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=6d7864aa-de4c-4779-89ac-8f493568be1c","sha1Fingerprint":"ff02aab5ee467fbad7bf231d0b7a7b27a3c09c25","instance":"sqluser-dep-3vxr1tn21m3yp","createTime":"2024-09-10T19:59:17.731Z","expirationTime":"2034-09-08T20:00:17.731Z"},"instanceType":"CLOUD_SQL_INSTANCE","project":"example-project","serviceAccountEmailAddress":"p123456789-s1uauf@gcp-sa-cloud-sql.iam.gserviceaccount.com","backendType":"SECOND_GEN","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","connectionName":"example-project:us-central1:sqluser-dep-3vxr1tn21m3yp","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","gceZone":"us-central1-b","databaseInstalledVersion":"MYSQL_5_7_44","maintenanceVersion":"MYSQL_5_7_44.R20240527.01_12","upgradableDatabaseVersions":[{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0","displayName":"MySQL 8.0"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_18","displayName":"MySQL 8.0.18"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_26","displayName":"MySQL 8.0.26"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_27","displayName":"MySQL 8.0.27"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_28","displayName":"MySQL 8.0.28"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_29","displayName":"MySQL 8.0.29"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_30","displayName":"MySQL 8.0.30"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_31","displayName":"MySQL 8.0.31"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_32","displayName":"MySQL 8.0.32"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_33","displayName":"MySQL 8.0.33"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_34","displayName":"MySQL 8.0.34"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_35","displayName":"MySQL 8.0.35"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_36","displayName":"MySQL 8.0.36"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_37","displayName":"MySQL 8.0.37"}],"geminiConfig":{"entitled":false,"activeQueryEnabled":false,"indexAdvisorEnabled":false,"flagRecommenderEnabled":false},"createTime":"2024-09-10T19:59:31.050Z","sqlNetworkArchitecture":"NEW_NETWORK_ARCHITECTURE","satisfiesPzi":true}' + headers: + Content-Type: + - application/json; charset=UTF-8 + status: 200 OK + code: 200 + duration: 172.343514ms + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: sqladmin.googleapis.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 + url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp?alt=json&prettyPrint=false + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: -1 + uncompressed: true + body: '{"kind":"sql#instance","state":"RUNNABLE","databaseVersion":"MYSQL_5_7","settings":{"authorizedGaeApplications":[],"tier":"db-n1-standard-1","kind":"sql#settings","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"},"availabilityType":"ZONAL","pricingPlan":"PER_USE","replicationType":"SYNCHRONOUS","activationPolicy":"ALWAYS","ipConfiguration":{"authorizedNetworks":[],"sslMode":"ALLOW_UNENCRYPTED_AND_ENCRYPTED","ipv4Enabled":true,"requireSsl":false,"serverCaMode":"GOOGLE_MANAGED_INTERNAL_CA"},"locationPreference":{"zone":"us-central1-b","kind":"sql#locationPreference"},"dataDiskType":"PD_SSD","backupConfiguration":{"startTime":"12:00","kind":"sql#backupConfiguration","backupRetentionSettings":{"retentionUnit":"COUNT","retainedBackups":7},"enabled":false,"transactionLogRetentionDays":7,"transactionalLogStorageState":"TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED"},"edition":"ENTERPRISE","connectorEnforcement":"NOT_REQUIRED","settingsVersion":"1","storageAutoResizeLimit":"0","storageAutoResize":true,"dataDiskSizeGb":"10","deletionProtectionEnabled":false},"etag":"7e5ef910ac028bd4fa1e7d9e14a652e02d4884ffb6371e9714c169d1775b20a6","ipAddresses":[{"type":"PRIMARY","ipAddress":"34.134.120.174"}],"serverCaCert":{"kind":"sql#sslCert","certSerialNumber":"0","cert":"-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADB3MS0wKwYDVQQuEyQ2ZDc4\nNjRhYS1kZTRjLTQ3NzktODlhYy04ZjQ5MzU2OGJlMWMxIzAhBgNVBAMTGkdvb2ds\nZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkG\nA1UEBhMCVVMwHhcNMjQwOTEwMTk1OTE3WhcNMzQwOTA4MjAwMDE3WjB3MS0wKwYD\nVQQuEyQ2ZDc4NjRhYS1kZTRjLTQ3NzktODlhYy04ZjQ5MzU2OGJlMWMxIzAhBgNV\nBAMTGkdvb2dsZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQCWaccnvek9H981161Q3ievYkifqtAxOc0ae5jN2fT8U1wyqjDFuJIR+8eNLIrO\naF4haqsBbyDYpLvlXCuGDj19kS6Jg9ZSvFOkGU01B0T4gtgR022YL9qR3Rh0Ps1/\n21yRdsleLQIQByTjFKaehz8OqcDhuYSbMv2WWh6y6xFKNbkuKmr3O1xxYdh3MdjJ\nQn/WankHyyIUXb03QXzCkDRNyerHQdypLFv7QF6zZXicqmdI/wJse2X+1nvMLnFG\n8IeeYleZ9If/qVr0WKVAkl5WhmDnZUh+oSsCqYFSe0/RXIc/MzukCEcYQFrq7H8m\nUzEgvnt7liJrzHX7R9/iBiezAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAw\nDQYJKoZIhvcNAQELBQADggEBAC/pl9wIwfHiUoAS2ZNUV+uRP97pJvBG2TYutfyL\no1ayLI4Bn6X0ovmehmsKZ4Bk7QDmBKiiffB5WdqxP/hQuLy1OVAhuV1fN9W3DODg\nkC4X3kcr/pmfjatOKkHBiEmfK6cJYnwKNcF7yvEh/IGRxXukb2UyhcLhDex4r9VI\nnyGYQEnqFW0EoJj1L4hhBg9etzCfe+g+oYC8I3HXW5SNpnbR7giKsJlRddA+MCDa\nDd5MPWcTNcQhIY07XnbJ+NLGjkcDFZ7GboW/YjRo0bZ183otyp9VIGqv9AEXBDRW\nNlhZng8xkS6RYdpmrUe2H41R4UBq/wdUxPyA98FiegC80VA=\n-----END CERTIFICATE-----","commonName":"C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=6d7864aa-de4c-4779-89ac-8f493568be1c","sha1Fingerprint":"ff02aab5ee467fbad7bf231d0b7a7b27a3c09c25","instance":"sqluser-dep-3vxr1tn21m3yp","createTime":"2024-09-10T19:59:17.731Z","expirationTime":"2034-09-08T20:00:17.731Z"},"instanceType":"CLOUD_SQL_INSTANCE","project":"example-project","serviceAccountEmailAddress":"p123456789-s1uauf@gcp-sa-cloud-sql.iam.gserviceaccount.com","backendType":"SECOND_GEN","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","connectionName":"example-project:us-central1:sqluser-dep-3vxr1tn21m3yp","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","gceZone":"us-central1-b","databaseInstalledVersion":"MYSQL_5_7_44","maintenanceVersion":"MYSQL_5_7_44.R20240527.01_12","upgradableDatabaseVersions":[{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0","displayName":"MySQL 8.0"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_18","displayName":"MySQL 8.0.18"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_26","displayName":"MySQL 8.0.26"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_27","displayName":"MySQL 8.0.27"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_28","displayName":"MySQL 8.0.28"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_29","displayName":"MySQL 8.0.29"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_30","displayName":"MySQL 8.0.30"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_31","displayName":"MySQL 8.0.31"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_32","displayName":"MySQL 8.0.32"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_33","displayName":"MySQL 8.0.33"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_34","displayName":"MySQL 8.0.34"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_35","displayName":"MySQL 8.0.35"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_36","displayName":"MySQL 8.0.36"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_37","displayName":"MySQL 8.0.37"}],"geminiConfig":{"entitled":false,"activeQueryEnabled":false,"indexAdvisorEnabled":false,"flagRecommenderEnabled":false},"createTime":"2024-09-10T19:59:31.050Z","sqlNetworkArchitecture":"NEW_NETWORK_ARCHITECTURE","satisfiesPzi":true}' + headers: + Content-Type: + - application/json; charset=UTF-8 + status: 200 OK + code: 200 + duration: 174.480675ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: sqladmin.googleapis.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 + url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp?alt=json&prettyPrint=false + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: -1 + uncompressed: true + body: '{"kind":"sql#operation","targetLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","status":"PENDING","user":"user@google.com","insertTime":"2024-09-10T20:02:31.801Z","operationType":"DELETE","name":"3bf2e834-d43b-4eca-8a75-dec100000032","targetId":"sqluser-dep-3vxr1tn21m3yp","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/operations/3bf2e834-d43b-4eca-8a75-dec100000032","targetProject":"example-project"}' + headers: + Content-Type: + - application/json; charset=UTF-8 + status: 200 OK + code: 200 + duration: 1.071916453s diff --git a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqluser/_vcr_cassettes/tf.yaml b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqluser/_vcr_cassettes/tf.yaml index 8d2f6e4d50..24695d29e1 100644 --- a/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqluser/_vcr_cassettes/tf.yaml +++ b/pkg/test/resourcefixture/testdata/basic/sql/v1beta1/sqluser/_vcr_cassettes/tf.yaml @@ -29,242 +29,8 @@ interactions: body: "" form: {} headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 - url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp?alt=json&prettyPrint=false - method: GET - response: - proto: HTTP/2.0 - proto_major: 2 - proto_minor: 0 - transfer_encoding: [] - trailer: {} - content_length: 0 - uncompressed: true - body: fake error message - headers: - Content-Type: - - application/json; charset=UTF-8 - status: 404 Not Found - code: 404 - duration: 181.438833ms - - id: 1 - request: - proto: HTTP/1.1 - proto_major: 1 - proto_minor: 1 - content_length: 316 - transfer_encoding: [] - trailer: {} - host: sqladmin.googleapis.com - remote_addr: "" - request_uri: "" - body: | - {"databaseVersion":"MYSQL_5_7","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","settings":{"activationPolicy":"ALWAYS","availabilityType":"ZONAL","dataDiskType":"PD_SSD","pricingPlan":"PER_USE","storageAutoResize":true,"tier":"db-n1-standard-1","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"}}} - form: {} - headers: - Content-Type: - - application/json - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 - url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances?alt=json&prettyPrint=false - method: POST - response: - proto: HTTP/2.0 - proto_major: 2 - proto_minor: 0 - transfer_encoding: [] - trailer: {} - content_length: -1 - uncompressed: true - body: '{"kind":"sql#operation","targetLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","status":"PENDING","user":"integration-test@example-project.iam.gserviceaccount.com","insertTime":"2024-04-25T02:07:51.195Z","operationType":"CREATE","name":"64c5afa1-6e53-426a-bc91-0a9100000032","targetId":"sqluser-dep-3vxr1tn21m3yp","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/operations/64c5afa1-6e53-426a-bc91-0a9100000032","targetProject":"example-project"}' - headers: - Content-Type: - - application/json; charset=UTF-8 - status: 200 OK - code: 200 - duration: 1.039208057s - - id: 2 - request: - proto: HTTP/1.1 - proto_major: 1 - proto_minor: 1 - content_length: 0 - transfer_encoding: [] - trailer: {} - host: sqladmin.googleapis.com - remote_addr: "" - request_uri: "" - body: "" - form: {} - headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 - url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/operations/64c5afa1-6e53-426a-bc91-0a9100000032?alt=json&prettyPrint=false - method: GET - response: - proto: HTTP/2.0 - proto_major: 2 - proto_minor: 0 - transfer_encoding: [] - trailer: {} - content_length: -1 - uncompressed: true - body: '{"kind":"sql#operation","targetLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","status":"DONE","user":"integration-test@example-project.iam.gserviceaccount.com","insertTime":"2024-04-25T02:07:51.195Z","startTime":"2024-04-25T02:07:51.377Z","endTime":"2024-04-25T02:11:14.343Z","operationType":"CREATE","name":"64c5afa1-6e53-426a-bc91-0a9100000032","targetId":"sqluser-dep-3vxr1tn21m3yp","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/operations/64c5afa1-6e53-426a-bc91-0a9100000032","targetProject":"example-project"}' - headers: - Content-Type: - - application/json; charset=UTF-8 - status: 200 OK - code: 200 - duration: 158.880659ms - - id: 3 - request: - proto: HTTP/1.1 - proto_major: 1 - proto_minor: 1 - content_length: 0 - transfer_encoding: [] - trailer: {} - host: sqladmin.googleapis.com - remote_addr: "" - request_uri: "" - body: "" - form: {} - headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 - url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp/users?alt=json&prettyPrint=false - method: GET - response: - proto: HTTP/2.0 - proto_major: 2 - proto_minor: 0 - transfer_encoding: [] - trailer: {} - content_length: -1 - uncompressed: true - body: '{"kind":"sql#usersList","items":[{"kind":"sql#user","etag":"e9da3bb8206052408b8cadcfdd9d41ca601e8c25f3f96caa71d8f1b723acce7b","name":"root","host":"%","instance":"sqluser-dep-3vxr1tn21m3yp","project":"example-project","passwordPolicy":{"status":{}}}]}' - headers: - Content-Type: - - application/json; charset=UTF-8 - status: 200 OK - code: 200 - duration: 244.352728ms - - id: 4 - request: - proto: HTTP/1.1 - proto_major: 1 - proto_minor: 1 - content_length: 0 - transfer_encoding: [] - trailer: {} - host: sqladmin.googleapis.com - remote_addr: "" - request_uri: "" - body: "" - form: {} - headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 - url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp/users?alt=json&host=%25&name=root&prettyPrint=false - method: DELETE - response: - proto: HTTP/2.0 - proto_major: 2 - proto_minor: 0 - transfer_encoding: [] - trailer: {} - content_length: -1 - uncompressed: true - body: '{"kind":"sql#operation","targetLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","status":"DONE","user":"integration-test@example-project.iam.gserviceaccount.com","insertTime":"2024-04-25T02:11:19.886Z","startTime":"2024-04-25T02:11:19.892Z","endTime":"2024-04-25T02:11:19.998Z","operationType":"DELETE_USER","name":"ca14e67e-8ba7-4c5d-b6f0-b10500000032","targetId":"sqluser-dep-3vxr1tn21m3yp","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/operations/ca14e67e-8ba7-4c5d-b6f0-b10500000032","targetProject":"example-project"}' - headers: - Content-Type: - - application/json; charset=UTF-8 - status: 200 OK - code: 200 - duration: 298.582426ms - - id: 5 - request: - proto: HTTP/1.1 - proto_major: 1 - proto_minor: 1 - content_length: 0 - transfer_encoding: [] - trailer: {} - host: sqladmin.googleapis.com - remote_addr: "" - request_uri: "" - body: "" - form: {} - headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 - url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp?alt=json&prettyPrint=false - method: GET - response: - proto: HTTP/2.0 - proto_major: 2 - proto_minor: 0 - transfer_encoding: [] - trailer: {} - content_length: -1 - uncompressed: true - body: '{"kind":"sql#instance","state":"RUNNABLE","databaseVersion":"MYSQL_5_7","settings":{"authorizedGaeApplications":[],"tier":"db-n1-standard-1","kind":"sql#settings","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"},"availabilityType":"ZONAL","pricingPlan":"PER_USE","replicationType":"SYNCHRONOUS","activationPolicy":"ALWAYS","ipConfiguration":{"authorizedNetworks":[],"sslMode":"ALLOW_UNENCRYPTED_AND_ENCRYPTED","ipv4Enabled":true,"requireSsl":false},"locationPreference":{"zone":"us-central1-a","kind":"sql#locationPreference"},"dataDiskType":"PD_SSD","backupConfiguration":{"startTime":"20:00","kind":"sql#backupConfiguration","backupRetentionSettings":{"retentionUnit":"COUNT","retainedBackups":7},"enabled":false,"transactionLogRetentionDays":7,"transactionalLogStorageState":"TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED"},"connectorEnforcement":"NOT_REQUIRED","settingsVersion":"1","storageAutoResizeLimit":"0","storageAutoResize":true,"dataDiskSizeGb":"10","deletionProtectionEnabled":false},"etag":"da9cca3b1e7ecce33135394a5d97635dbb91d5b3eb34b91e6998d44e0307ae1b","ipAddresses":[{"type":"PRIMARY","ipAddress":"35.223.189.113"}],"serverCaCert":{"kind":"sql#sslCert","certSerialNumber":"0","cert":"-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADB3MS0wKwYDVQQuEyRlNzVh\nNzVhNi1lYzUxLTRkY2ItYWQ1Ny0yYWViN2E4NmE1OGIxIzAhBgNVBAMTGkdvb2ds\nZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkG\nA1UEBhMCVVMwHhcNMjQwNDI1MDIwODM2WhcNMzQwNDIzMDIwOTM2WjB3MS0wKwYD\nVQQuEyRlNzVhNzVhNi1lYzUxLTRkY2ItYWQ1Ny0yYWViN2E4NmE1OGIxIzAhBgNV\nBAMTGkdvb2dsZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQDOHnwixlJOq3LRBYWdDAxiZhJ3ef/yXof+ZTbr8PZGuA5kBAijtoFGckDVJL6b\n2WMEHt8nJC6LXo0p0tSyFCD7pdrMU0uXm5l/30hl+X5WXRXEsWiPgoOHB6p86bdH\n3DUiiYp3eL1+wtE921WY6FtJTf3d2ucOpRSrbqAfbyoXm+6r4q4ubizFb22ybMAQ\n6xVipkfcyyJFytLmlRBD31Tk8+GOR1yCGf6kfjf06WbknvuEluKJdEC9FBjj1OVt\nF+dMUv8BDo57TouL0pF3u531hLUe3MhpbSG7T0SOZtMItjYx9/JLehV152chdU7m\nARpJ+XUK3CE1X9USweaNkkDHAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAw\nDQYJKoZIhvcNAQELBQADggEBACptpkm2mT2EnxI/AQk8Nd5sOY3SRx5HIAiOVSFR\n/Di7sVF7CPCDVnK1nmsasr4tanbOCkj4fx9G22fuO2CXPGoPNdUVfmjTMdBIpW3B\n3F0FlNFTdw4sk3sqwSUSPf6maYCL11Cx0G40TReyUa9oBOlAZj+cGS9pFK/9ISF1\nj29LPOVtg858U+EQyLaf78/u5mLwOYoqSWO6CIUcS+gBnugFsaHnam6APjyxMYqv\nWvyyrkQ897I4lLhN6LNSIGok87zGfDiD3ntQKB0qSrUWEx2HaE+vkSutdAG1fe3t\n8ssAA+eXpciJO8dLQxq2Rd988qJhQ6Xl725/+EbcMNt5TFs=\n-----END CERTIFICATE-----","commonName":"C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=e75a75a6-ec51-4dcb-ad57-2aeb7a86a58b","sha1Fingerprint":"46282f1a50714c56ed04e066b5ce58102a8a7992","instance":"sqluser-dep-3vxr1tn21m3yp","createTime":"2024-04-25T02:08:36.863Z","expirationTime":"2034-04-23T02:09:36.863Z"},"instanceType":"CLOUD_SQL_INSTANCE","project":"example-project","serviceAccountEmailAddress":"p123456789-l5ih3n@gcp-sa-cloud-sql.iam.gserviceaccount.com","backendType":"SECOND_GEN","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","connectionName":"example-project:us-central1:sqluser-dep-3vxr1tn21m3yp","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","gceZone":"us-central1-c","databaseInstalledVersion":"MYSQL_5_7_44","maintenanceVersion":"MYSQL_5_7_44.R20240207.00_10","geminiConfig":{"entitled":false,"indexAdvisorEnabled":false,"flagRecommenderEnabled":false},"createTime":"2024-04-25T02:07:50.607Z","sqlNetworkArchitecture":"NEW_NETWORK_ARCHITECTURE"}' - headers: - Content-Type: - - application/json; charset=UTF-8 - status: 200 OK - code: 200 - duration: 191.395301ms - - id: 6 - request: - proto: HTTP/1.1 - proto_major: 1 - proto_minor: 1 - content_length: 0 - transfer_encoding: [] - trailer: {} - host: sqladmin.googleapis.com - remote_addr: "" - request_uri: "" - body: "" - form: {} - headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 - url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp?alt=json&prettyPrint=false - method: GET - response: - proto: HTTP/2.0 - proto_major: 2 - proto_minor: 0 - transfer_encoding: [] - trailer: {} - content_length: -1 - uncompressed: true - body: '{"kind":"sql#instance","state":"RUNNABLE","databaseVersion":"MYSQL_5_7","settings":{"authorizedGaeApplications":[],"tier":"db-n1-standard-1","kind":"sql#settings","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"},"availabilityType":"ZONAL","pricingPlan":"PER_USE","replicationType":"SYNCHRONOUS","activationPolicy":"ALWAYS","ipConfiguration":{"authorizedNetworks":[],"sslMode":"ALLOW_UNENCRYPTED_AND_ENCRYPTED","ipv4Enabled":true,"requireSsl":false},"locationPreference":{"zone":"us-central1-a","kind":"sql#locationPreference"},"dataDiskType":"PD_SSD","backupConfiguration":{"startTime":"20:00","kind":"sql#backupConfiguration","backupRetentionSettings":{"retentionUnit":"COUNT","retainedBackups":7},"enabled":false,"transactionLogRetentionDays":7,"transactionalLogStorageState":"TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED"},"connectorEnforcement":"NOT_REQUIRED","settingsVersion":"1","storageAutoResizeLimit":"0","storageAutoResize":true,"dataDiskSizeGb":"10","deletionProtectionEnabled":false},"etag":"da9cca3b1e7ecce33135394a5d97635dbb91d5b3eb34b91e6998d44e0307ae1b","ipAddresses":[{"type":"PRIMARY","ipAddress":"35.223.189.113"}],"serverCaCert":{"kind":"sql#sslCert","certSerialNumber":"0","cert":"-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADB3MS0wKwYDVQQuEyRlNzVh\nNzVhNi1lYzUxLTRkY2ItYWQ1Ny0yYWViN2E4NmE1OGIxIzAhBgNVBAMTGkdvb2ds\nZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkG\nA1UEBhMCVVMwHhcNMjQwNDI1MDIwODM2WhcNMzQwNDIzMDIwOTM2WjB3MS0wKwYD\nVQQuEyRlNzVhNzVhNi1lYzUxLTRkY2ItYWQ1Ny0yYWViN2E4NmE1OGIxIzAhBgNV\nBAMTGkdvb2dsZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQDOHnwixlJOq3LRBYWdDAxiZhJ3ef/yXof+ZTbr8PZGuA5kBAijtoFGckDVJL6b\n2WMEHt8nJC6LXo0p0tSyFCD7pdrMU0uXm5l/30hl+X5WXRXEsWiPgoOHB6p86bdH\n3DUiiYp3eL1+wtE921WY6FtJTf3d2ucOpRSrbqAfbyoXm+6r4q4ubizFb22ybMAQ\n6xVipkfcyyJFytLmlRBD31Tk8+GOR1yCGf6kfjf06WbknvuEluKJdEC9FBjj1OVt\nF+dMUv8BDo57TouL0pF3u531hLUe3MhpbSG7T0SOZtMItjYx9/JLehV152chdU7m\nARpJ+XUK3CE1X9USweaNkkDHAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAw\nDQYJKoZIhvcNAQELBQADggEBACptpkm2mT2EnxI/AQk8Nd5sOY3SRx5HIAiOVSFR\n/Di7sVF7CPCDVnK1nmsasr4tanbOCkj4fx9G22fuO2CXPGoPNdUVfmjTMdBIpW3B\n3F0FlNFTdw4sk3sqwSUSPf6maYCL11Cx0G40TReyUa9oBOlAZj+cGS9pFK/9ISF1\nj29LPOVtg858U+EQyLaf78/u5mLwOYoqSWO6CIUcS+gBnugFsaHnam6APjyxMYqv\nWvyyrkQ897I4lLhN6LNSIGok87zGfDiD3ntQKB0qSrUWEx2HaE+vkSutdAG1fe3t\n8ssAA+eXpciJO8dLQxq2Rd988qJhQ6Xl725/+EbcMNt5TFs=\n-----END CERTIFICATE-----","commonName":"C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=e75a75a6-ec51-4dcb-ad57-2aeb7a86a58b","sha1Fingerprint":"46282f1a50714c56ed04e066b5ce58102a8a7992","instance":"sqluser-dep-3vxr1tn21m3yp","createTime":"2024-04-25T02:08:36.863Z","expirationTime":"2034-04-23T02:09:36.863Z"},"instanceType":"CLOUD_SQL_INSTANCE","project":"example-project","serviceAccountEmailAddress":"p123456789-l5ih3n@gcp-sa-cloud-sql.iam.gserviceaccount.com","backendType":"SECOND_GEN","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","connectionName":"example-project:us-central1:sqluser-dep-3vxr1tn21m3yp","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","gceZone":"us-central1-c","databaseInstalledVersion":"MYSQL_5_7_44","maintenanceVersion":"MYSQL_5_7_44.R20240207.00_10","geminiConfig":{"entitled":false,"indexAdvisorEnabled":false,"flagRecommenderEnabled":false},"createTime":"2024-04-25T02:07:50.607Z","sqlNetworkArchitecture":"NEW_NETWORK_ARCHITECTURE"}' - headers: - Content-Type: - - application/json; charset=UTF-8 - status: 200 OK - code: 200 - duration: 201.63722ms - - id: 7 - request: - proto: HTTP/1.1 - proto_major: 1 - proto_minor: 1 - content_length: 0 - transfer_encoding: [] - trailer: {} - host: sqladmin.googleapis.com - remote_addr: "" - request_uri: "" - body: "" - form: {} - headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp/users?alt=json&prettyPrint=false method: GET response: @@ -277,12 +43,12 @@ interactions: uncompressed: true body: '{"kind":"sql#usersList"}' headers: - Content-Type: - - application/json; charset=UTF-8 + Content-Type: + - application/json; charset=UTF-8 status: 200 OK code: 200 - duration: 213.120855ms - - id: 8 + duration: 318.131821ms + - id: 1 request: proto: HTTP/1.1 proto_major: 1 @@ -296,8 +62,8 @@ interactions: body: "" form: {} headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp?alt=json&prettyPrint=false method: GET response: @@ -308,14 +74,14 @@ interactions: trailer: {} content_length: -1 uncompressed: true - body: '{"kind":"sql#instance","state":"RUNNABLE","databaseVersion":"MYSQL_5_7","settings":{"authorizedGaeApplications":[],"tier":"db-n1-standard-1","kind":"sql#settings","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"},"availabilityType":"ZONAL","pricingPlan":"PER_USE","replicationType":"SYNCHRONOUS","activationPolicy":"ALWAYS","ipConfiguration":{"authorizedNetworks":[],"sslMode":"ALLOW_UNENCRYPTED_AND_ENCRYPTED","ipv4Enabled":true,"requireSsl":false},"locationPreference":{"zone":"us-central1-a","kind":"sql#locationPreference"},"dataDiskType":"PD_SSD","backupConfiguration":{"startTime":"20:00","kind":"sql#backupConfiguration","backupRetentionSettings":{"retentionUnit":"COUNT","retainedBackups":7},"enabled":false,"transactionLogRetentionDays":7,"transactionalLogStorageState":"TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED"},"connectorEnforcement":"NOT_REQUIRED","settingsVersion":"1","storageAutoResizeLimit":"0","storageAutoResize":true,"dataDiskSizeGb":"10","deletionProtectionEnabled":false},"etag":"da9cca3b1e7ecce33135394a5d97635dbb91d5b3eb34b91e6998d44e0307ae1b","ipAddresses":[{"type":"PRIMARY","ipAddress":"35.223.189.113"}],"serverCaCert":{"kind":"sql#sslCert","certSerialNumber":"0","cert":"-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADB3MS0wKwYDVQQuEyRlNzVh\nNzVhNi1lYzUxLTRkY2ItYWQ1Ny0yYWViN2E4NmE1OGIxIzAhBgNVBAMTGkdvb2ds\nZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkG\nA1UEBhMCVVMwHhcNMjQwNDI1MDIwODM2WhcNMzQwNDIzMDIwOTM2WjB3MS0wKwYD\nVQQuEyRlNzVhNzVhNi1lYzUxLTRkY2ItYWQ1Ny0yYWViN2E4NmE1OGIxIzAhBgNV\nBAMTGkdvb2dsZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQDOHnwixlJOq3LRBYWdDAxiZhJ3ef/yXof+ZTbr8PZGuA5kBAijtoFGckDVJL6b\n2WMEHt8nJC6LXo0p0tSyFCD7pdrMU0uXm5l/30hl+X5WXRXEsWiPgoOHB6p86bdH\n3DUiiYp3eL1+wtE921WY6FtJTf3d2ucOpRSrbqAfbyoXm+6r4q4ubizFb22ybMAQ\n6xVipkfcyyJFytLmlRBD31Tk8+GOR1yCGf6kfjf06WbknvuEluKJdEC9FBjj1OVt\nF+dMUv8BDo57TouL0pF3u531hLUe3MhpbSG7T0SOZtMItjYx9/JLehV152chdU7m\nARpJ+XUK3CE1X9USweaNkkDHAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAw\nDQYJKoZIhvcNAQELBQADggEBACptpkm2mT2EnxI/AQk8Nd5sOY3SRx5HIAiOVSFR\n/Di7sVF7CPCDVnK1nmsasr4tanbOCkj4fx9G22fuO2CXPGoPNdUVfmjTMdBIpW3B\n3F0FlNFTdw4sk3sqwSUSPf6maYCL11Cx0G40TReyUa9oBOlAZj+cGS9pFK/9ISF1\nj29LPOVtg858U+EQyLaf78/u5mLwOYoqSWO6CIUcS+gBnugFsaHnam6APjyxMYqv\nWvyyrkQ897I4lLhN6LNSIGok87zGfDiD3ntQKB0qSrUWEx2HaE+vkSutdAG1fe3t\n8ssAA+eXpciJO8dLQxq2Rd988qJhQ6Xl725/+EbcMNt5TFs=\n-----END CERTIFICATE-----","commonName":"C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=e75a75a6-ec51-4dcb-ad57-2aeb7a86a58b","sha1Fingerprint":"46282f1a50714c56ed04e066b5ce58102a8a7992","instance":"sqluser-dep-3vxr1tn21m3yp","createTime":"2024-04-25T02:08:36.863Z","expirationTime":"2034-04-23T02:09:36.863Z"},"instanceType":"CLOUD_SQL_INSTANCE","project":"example-project","serviceAccountEmailAddress":"p123456789-l5ih3n@gcp-sa-cloud-sql.iam.gserviceaccount.com","backendType":"SECOND_GEN","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","connectionName":"example-project:us-central1:sqluser-dep-3vxr1tn21m3yp","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","gceZone":"us-central1-c","databaseInstalledVersion":"MYSQL_5_7_44","maintenanceVersion":"MYSQL_5_7_44.R20240207.00_10","geminiConfig":{"entitled":false,"indexAdvisorEnabled":false,"flagRecommenderEnabled":false},"createTime":"2024-04-25T02:07:50.607Z","sqlNetworkArchitecture":"NEW_NETWORK_ARCHITECTURE"}' + body: '{"kind":"sql#instance","state":"RUNNABLE","databaseVersion":"MYSQL_5_7","settings":{"authorizedGaeApplications":[],"tier":"db-n1-standard-1","kind":"sql#settings","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"},"availabilityType":"ZONAL","pricingPlan":"PER_USE","replicationType":"SYNCHRONOUS","activationPolicy":"ALWAYS","ipConfiguration":{"authorizedNetworks":[],"sslMode":"ALLOW_UNENCRYPTED_AND_ENCRYPTED","ipv4Enabled":true,"requireSsl":false,"serverCaMode":"GOOGLE_MANAGED_INTERNAL_CA"},"locationPreference":{"zone":"us-central1-b","kind":"sql#locationPreference"},"dataDiskType":"PD_SSD","backupConfiguration":{"startTime":"12:00","kind":"sql#backupConfiguration","backupRetentionSettings":{"retentionUnit":"COUNT","retainedBackups":7},"enabled":false,"transactionLogRetentionDays":7,"transactionalLogStorageState":"TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED"},"edition":"ENTERPRISE","connectorEnforcement":"NOT_REQUIRED","settingsVersion":"1","storageAutoResizeLimit":"0","storageAutoResize":true,"dataDiskSizeGb":"10","deletionProtectionEnabled":false},"etag":"7e5ef910ac028bd4fa1e7d9e14a652e02d4884ffb6371e9714c169d1775b20a6","ipAddresses":[{"type":"PRIMARY","ipAddress":"34.134.120.174"}],"serverCaCert":{"kind":"sql#sslCert","certSerialNumber":"0","cert":"-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADB3MS0wKwYDVQQuEyQ2ZDc4\nNjRhYS1kZTRjLTQ3NzktODlhYy04ZjQ5MzU2OGJlMWMxIzAhBgNVBAMTGkdvb2ds\nZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkG\nA1UEBhMCVVMwHhcNMjQwOTEwMTk1OTE3WhcNMzQwOTA4MjAwMDE3WjB3MS0wKwYD\nVQQuEyQ2ZDc4NjRhYS1kZTRjLTQ3NzktODlhYy04ZjQ5MzU2OGJlMWMxIzAhBgNV\nBAMTGkdvb2dsZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQCWaccnvek9H981161Q3ievYkifqtAxOc0ae5jN2fT8U1wyqjDFuJIR+8eNLIrO\naF4haqsBbyDYpLvlXCuGDj19kS6Jg9ZSvFOkGU01B0T4gtgR022YL9qR3Rh0Ps1/\n21yRdsleLQIQByTjFKaehz8OqcDhuYSbMv2WWh6y6xFKNbkuKmr3O1xxYdh3MdjJ\nQn/WankHyyIUXb03QXzCkDRNyerHQdypLFv7QF6zZXicqmdI/wJse2X+1nvMLnFG\n8IeeYleZ9If/qVr0WKVAkl5WhmDnZUh+oSsCqYFSe0/RXIc/MzukCEcYQFrq7H8m\nUzEgvnt7liJrzHX7R9/iBiezAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAw\nDQYJKoZIhvcNAQELBQADggEBAC/pl9wIwfHiUoAS2ZNUV+uRP97pJvBG2TYutfyL\no1ayLI4Bn6X0ovmehmsKZ4Bk7QDmBKiiffB5WdqxP/hQuLy1OVAhuV1fN9W3DODg\nkC4X3kcr/pmfjatOKkHBiEmfK6cJYnwKNcF7yvEh/IGRxXukb2UyhcLhDex4r9VI\nnyGYQEnqFW0EoJj1L4hhBg9etzCfe+g+oYC8I3HXW5SNpnbR7giKsJlRddA+MCDa\nDd5MPWcTNcQhIY07XnbJ+NLGjkcDFZ7GboW/YjRo0bZ183otyp9VIGqv9AEXBDRW\nNlhZng8xkS6RYdpmrUe2H41R4UBq/wdUxPyA98FiegC80VA=\n-----END CERTIFICATE-----","commonName":"C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=6d7864aa-de4c-4779-89ac-8f493568be1c","sha1Fingerprint":"ff02aab5ee467fbad7bf231d0b7a7b27a3c09c25","instance":"sqluser-dep-3vxr1tn21m3yp","createTime":"2024-09-10T19:59:17.731Z","expirationTime":"2034-09-08T20:00:17.731Z"},"instanceType":"CLOUD_SQL_INSTANCE","project":"example-project","serviceAccountEmailAddress":"p123456789-s1uauf@gcp-sa-cloud-sql.iam.gserviceaccount.com","backendType":"SECOND_GEN","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","connectionName":"example-project:us-central1:sqluser-dep-3vxr1tn21m3yp","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","gceZone":"us-central1-b","databaseInstalledVersion":"MYSQL_5_7_44","maintenanceVersion":"MYSQL_5_7_44.R20240527.01_12","upgradableDatabaseVersions":[{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0","displayName":"MySQL 8.0"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_18","displayName":"MySQL 8.0.18"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_26","displayName":"MySQL 8.0.26"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_27","displayName":"MySQL 8.0.27"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_28","displayName":"MySQL 8.0.28"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_29","displayName":"MySQL 8.0.29"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_30","displayName":"MySQL 8.0.30"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_31","displayName":"MySQL 8.0.31"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_32","displayName":"MySQL 8.0.32"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_33","displayName":"MySQL 8.0.33"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_34","displayName":"MySQL 8.0.34"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_35","displayName":"MySQL 8.0.35"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_36","displayName":"MySQL 8.0.36"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_37","displayName":"MySQL 8.0.37"}],"geminiConfig":{"entitled":false,"activeQueryEnabled":false,"indexAdvisorEnabled":false,"flagRecommenderEnabled":false},"createTime":"2024-09-10T19:59:31.050Z","sqlNetworkArchitecture":"NEW_NETWORK_ARCHITECTURE","satisfiesPzi":true}' headers: - Content-Type: - - application/json; charset=UTF-8 + Content-Type: + - application/json; charset=UTF-8 status: 200 OK code: 200 - duration: 239.470179ms - - id: 9 + duration: 166.655855ms + - id: 2 request: proto: HTTP/1.1 proto_major: 1 @@ -329,8 +95,8 @@ interactions: body: "" form: {} headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp?alt=json&prettyPrint=false method: GET response: @@ -341,14 +107,14 @@ interactions: trailer: {} content_length: -1 uncompressed: true - body: '{"kind":"sql#instance","state":"RUNNABLE","databaseVersion":"MYSQL_5_7","settings":{"authorizedGaeApplications":[],"tier":"db-n1-standard-1","kind":"sql#settings","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"},"availabilityType":"ZONAL","pricingPlan":"PER_USE","replicationType":"SYNCHRONOUS","activationPolicy":"ALWAYS","ipConfiguration":{"authorizedNetworks":[],"sslMode":"ALLOW_UNENCRYPTED_AND_ENCRYPTED","ipv4Enabled":true,"requireSsl":false},"locationPreference":{"zone":"us-central1-a","kind":"sql#locationPreference"},"dataDiskType":"PD_SSD","backupConfiguration":{"startTime":"20:00","kind":"sql#backupConfiguration","backupRetentionSettings":{"retentionUnit":"COUNT","retainedBackups":7},"enabled":false,"transactionLogRetentionDays":7,"transactionalLogStorageState":"TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED"},"connectorEnforcement":"NOT_REQUIRED","settingsVersion":"1","storageAutoResizeLimit":"0","storageAutoResize":true,"dataDiskSizeGb":"10","deletionProtectionEnabled":false},"etag":"da9cca3b1e7ecce33135394a5d97635dbb91d5b3eb34b91e6998d44e0307ae1b","ipAddresses":[{"type":"PRIMARY","ipAddress":"35.223.189.113"}],"serverCaCert":{"kind":"sql#sslCert","certSerialNumber":"0","cert":"-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADB3MS0wKwYDVQQuEyRlNzVh\nNzVhNi1lYzUxLTRkY2ItYWQ1Ny0yYWViN2E4NmE1OGIxIzAhBgNVBAMTGkdvb2ds\nZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkG\nA1UEBhMCVVMwHhcNMjQwNDI1MDIwODM2WhcNMzQwNDIzMDIwOTM2WjB3MS0wKwYD\nVQQuEyRlNzVhNzVhNi1lYzUxLTRkY2ItYWQ1Ny0yYWViN2E4NmE1OGIxIzAhBgNV\nBAMTGkdvb2dsZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQDOHnwixlJOq3LRBYWdDAxiZhJ3ef/yXof+ZTbr8PZGuA5kBAijtoFGckDVJL6b\n2WMEHt8nJC6LXo0p0tSyFCD7pdrMU0uXm5l/30hl+X5WXRXEsWiPgoOHB6p86bdH\n3DUiiYp3eL1+wtE921WY6FtJTf3d2ucOpRSrbqAfbyoXm+6r4q4ubizFb22ybMAQ\n6xVipkfcyyJFytLmlRBD31Tk8+GOR1yCGf6kfjf06WbknvuEluKJdEC9FBjj1OVt\nF+dMUv8BDo57TouL0pF3u531hLUe3MhpbSG7T0SOZtMItjYx9/JLehV152chdU7m\nARpJ+XUK3CE1X9USweaNkkDHAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAw\nDQYJKoZIhvcNAQELBQADggEBACptpkm2mT2EnxI/AQk8Nd5sOY3SRx5HIAiOVSFR\n/Di7sVF7CPCDVnK1nmsasr4tanbOCkj4fx9G22fuO2CXPGoPNdUVfmjTMdBIpW3B\n3F0FlNFTdw4sk3sqwSUSPf6maYCL11Cx0G40TReyUa9oBOlAZj+cGS9pFK/9ISF1\nj29LPOVtg858U+EQyLaf78/u5mLwOYoqSWO6CIUcS+gBnugFsaHnam6APjyxMYqv\nWvyyrkQ897I4lLhN6LNSIGok87zGfDiD3ntQKB0qSrUWEx2HaE+vkSutdAG1fe3t\n8ssAA+eXpciJO8dLQxq2Rd988qJhQ6Xl725/+EbcMNt5TFs=\n-----END CERTIFICATE-----","commonName":"C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=e75a75a6-ec51-4dcb-ad57-2aeb7a86a58b","sha1Fingerprint":"46282f1a50714c56ed04e066b5ce58102a8a7992","instance":"sqluser-dep-3vxr1tn21m3yp","createTime":"2024-04-25T02:08:36.863Z","expirationTime":"2034-04-23T02:09:36.863Z"},"instanceType":"CLOUD_SQL_INSTANCE","project":"example-project","serviceAccountEmailAddress":"p123456789-l5ih3n@gcp-sa-cloud-sql.iam.gserviceaccount.com","backendType":"SECOND_GEN","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","connectionName":"example-project:us-central1:sqluser-dep-3vxr1tn21m3yp","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","gceZone":"us-central1-c","databaseInstalledVersion":"MYSQL_5_7_44","maintenanceVersion":"MYSQL_5_7_44.R20240207.00_10","geminiConfig":{"entitled":false,"indexAdvisorEnabled":false,"flagRecommenderEnabled":false},"createTime":"2024-04-25T02:07:50.607Z","sqlNetworkArchitecture":"NEW_NETWORK_ARCHITECTURE"}' + body: '{"kind":"sql#instance","state":"RUNNABLE","databaseVersion":"MYSQL_5_7","settings":{"authorizedGaeApplications":[],"tier":"db-n1-standard-1","kind":"sql#settings","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"},"availabilityType":"ZONAL","pricingPlan":"PER_USE","replicationType":"SYNCHRONOUS","activationPolicy":"ALWAYS","ipConfiguration":{"authorizedNetworks":[],"sslMode":"ALLOW_UNENCRYPTED_AND_ENCRYPTED","ipv4Enabled":true,"requireSsl":false,"serverCaMode":"GOOGLE_MANAGED_INTERNAL_CA"},"locationPreference":{"zone":"us-central1-b","kind":"sql#locationPreference"},"dataDiskType":"PD_SSD","backupConfiguration":{"startTime":"12:00","kind":"sql#backupConfiguration","backupRetentionSettings":{"retentionUnit":"COUNT","retainedBackups":7},"enabled":false,"transactionLogRetentionDays":7,"transactionalLogStorageState":"TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED"},"edition":"ENTERPRISE","connectorEnforcement":"NOT_REQUIRED","settingsVersion":"1","storageAutoResizeLimit":"0","storageAutoResize":true,"dataDiskSizeGb":"10","deletionProtectionEnabled":false},"etag":"7e5ef910ac028bd4fa1e7d9e14a652e02d4884ffb6371e9714c169d1775b20a6","ipAddresses":[{"type":"PRIMARY","ipAddress":"34.134.120.174"}],"serverCaCert":{"kind":"sql#sslCert","certSerialNumber":"0","cert":"-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADB3MS0wKwYDVQQuEyQ2ZDc4\nNjRhYS1kZTRjLTQ3NzktODlhYy04ZjQ5MzU2OGJlMWMxIzAhBgNVBAMTGkdvb2ds\nZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkG\nA1UEBhMCVVMwHhcNMjQwOTEwMTk1OTE3WhcNMzQwOTA4MjAwMDE3WjB3MS0wKwYD\nVQQuEyQ2ZDc4NjRhYS1kZTRjLTQ3NzktODlhYy04ZjQ5MzU2OGJlMWMxIzAhBgNV\nBAMTGkdvb2dsZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQCWaccnvek9H981161Q3ievYkifqtAxOc0ae5jN2fT8U1wyqjDFuJIR+8eNLIrO\naF4haqsBbyDYpLvlXCuGDj19kS6Jg9ZSvFOkGU01B0T4gtgR022YL9qR3Rh0Ps1/\n21yRdsleLQIQByTjFKaehz8OqcDhuYSbMv2WWh6y6xFKNbkuKmr3O1xxYdh3MdjJ\nQn/WankHyyIUXb03QXzCkDRNyerHQdypLFv7QF6zZXicqmdI/wJse2X+1nvMLnFG\n8IeeYleZ9If/qVr0WKVAkl5WhmDnZUh+oSsCqYFSe0/RXIc/MzukCEcYQFrq7H8m\nUzEgvnt7liJrzHX7R9/iBiezAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAw\nDQYJKoZIhvcNAQELBQADggEBAC/pl9wIwfHiUoAS2ZNUV+uRP97pJvBG2TYutfyL\no1ayLI4Bn6X0ovmehmsKZ4Bk7QDmBKiiffB5WdqxP/hQuLy1OVAhuV1fN9W3DODg\nkC4X3kcr/pmfjatOKkHBiEmfK6cJYnwKNcF7yvEh/IGRxXukb2UyhcLhDex4r9VI\nnyGYQEnqFW0EoJj1L4hhBg9etzCfe+g+oYC8I3HXW5SNpnbR7giKsJlRddA+MCDa\nDd5MPWcTNcQhIY07XnbJ+NLGjkcDFZ7GboW/YjRo0bZ183otyp9VIGqv9AEXBDRW\nNlhZng8xkS6RYdpmrUe2H41R4UBq/wdUxPyA98FiegC80VA=\n-----END CERTIFICATE-----","commonName":"C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=6d7864aa-de4c-4779-89ac-8f493568be1c","sha1Fingerprint":"ff02aab5ee467fbad7bf231d0b7a7b27a3c09c25","instance":"sqluser-dep-3vxr1tn21m3yp","createTime":"2024-09-10T19:59:17.731Z","expirationTime":"2034-09-08T20:00:17.731Z"},"instanceType":"CLOUD_SQL_INSTANCE","project":"example-project","serviceAccountEmailAddress":"p123456789-s1uauf@gcp-sa-cloud-sql.iam.gserviceaccount.com","backendType":"SECOND_GEN","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","connectionName":"example-project:us-central1:sqluser-dep-3vxr1tn21m3yp","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","gceZone":"us-central1-b","databaseInstalledVersion":"MYSQL_5_7_44","maintenanceVersion":"MYSQL_5_7_44.R20240527.01_12","upgradableDatabaseVersions":[{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0","displayName":"MySQL 8.0"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_18","displayName":"MySQL 8.0.18"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_26","displayName":"MySQL 8.0.26"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_27","displayName":"MySQL 8.0.27"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_28","displayName":"MySQL 8.0.28"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_29","displayName":"MySQL 8.0.29"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_30","displayName":"MySQL 8.0.30"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_31","displayName":"MySQL 8.0.31"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_32","displayName":"MySQL 8.0.32"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_33","displayName":"MySQL 8.0.33"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_34","displayName":"MySQL 8.0.34"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_35","displayName":"MySQL 8.0.35"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_36","displayName":"MySQL 8.0.36"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_37","displayName":"MySQL 8.0.37"}],"geminiConfig":{"entitled":false,"activeQueryEnabled":false,"indexAdvisorEnabled":false,"flagRecommenderEnabled":false},"createTime":"2024-09-10T19:59:31.050Z","sqlNetworkArchitecture":"NEW_NETWORK_ARCHITECTURE","satisfiesPzi":true}' headers: - Content-Type: - - application/json; charset=UTF-8 + Content-Type: + - application/json; charset=UTF-8 status: 200 OK code: 200 - duration: 200.733082ms - - id: 10 + duration: 176.736534ms + - id: 3 request: proto: HTTP/1.1 proto_major: 1 @@ -360,13 +126,13 @@ interactions: remote_addr: "" request_uri: "" body: | - {"host":"foo","instance":"sqluser-dep-3vxr1tn21m3yp","name":"sqluser-3vxr1tn21m3yp","password":"password"} + {"host":"foo","instance":"sqluser-dep-3vxr1tn21m3yp","name":"sqluser-3vxr1tn21m3yp","password":"password"} form: {} headers: - Content-Type: - - application/json - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 + Content-Type: + - application/json + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp/users?alt=json&prettyPrint=false method: POST response: @@ -377,14 +143,14 @@ interactions: trailer: {} content_length: -1 uncompressed: true - body: '{"kind":"sql#operation","targetLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","status":"DONE","user":"integration-test@example-project.iam.gserviceaccount.com","insertTime":"2024-04-25T02:11:22.269Z","startTime":"2024-04-25T02:11:22.277Z","endTime":"2024-04-25T02:11:22.433Z","operationType":"CREATE_USER","name":"e107890d-d05c-485a-9b5b-660300000032","targetId":"sqluser-dep-3vxr1tn21m3yp","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/operations/e107890d-d05c-485a-9b5b-660300000032","targetProject":"example-project"}' + body: '{"kind":"sql#operation","targetLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","status":"DONE","user":"user@google.com","insertTime":"2024-09-10T20:02:27.852Z","startTime":"2024-09-10T20:02:27.864Z","endTime":"2024-09-10T20:02:27.988Z","operationType":"CREATE_USER","name":"ccbac1c0-43a5-4873-8d9c-6eb500000032","targetId":"sqluser-dep-3vxr1tn21m3yp","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/operations/ccbac1c0-43a5-4873-8d9c-6eb500000032","targetProject":"example-project"}' headers: - Content-Type: - - application/json; charset=UTF-8 + Content-Type: + - application/json; charset=UTF-8 status: 200 OK code: 200 - duration: 388.678716ms - - id: 11 + duration: 357.703258ms + - id: 4 request: proto: HTTP/1.1 proto_major: 1 @@ -398,8 +164,8 @@ interactions: body: "" form: {} headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp/users?alt=json&prettyPrint=false method: GET response: @@ -410,14 +176,14 @@ interactions: trailer: {} content_length: -1 uncompressed: true - body: '{"kind":"sql#usersList","items":[{"kind":"sql#user","etag":"ca86c46a09300df6a903a5ef2a665661d13f373ae9cef4cf1d6b6264e5d63a44","name":"sqluser-3vxr1tn21m3yp","host":"foo","instance":"sqluser-dep-3vxr1tn21m3yp","project":"example-project","passwordPolicy":{"status":{}}}]}' + body: '{"kind":"sql#usersList","items":[{"kind":"sql#user","etag":"901e6d40cf7f5ac2b0ec3ab5553497665f778868946466448773e85cf450ce20","name":"sqluser-3vxr1tn21m3yp","host":"foo","instance":"sqluser-dep-3vxr1tn21m3yp","project":"example-project","passwordPolicy":{"status":{}}}]}' headers: - Content-Type: - - application/json; charset=UTF-8 + Content-Type: + - application/json; charset=UTF-8 status: 200 OK code: 200 - duration: 194.502875ms - - id: 12 + duration: 224.02065ms + - id: 5 request: proto: HTTP/1.1 proto_major: 1 @@ -431,8 +197,8 @@ interactions: body: "" form: {} headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp?alt=json&prettyPrint=false method: GET response: @@ -443,14 +209,14 @@ interactions: trailer: {} content_length: -1 uncompressed: true - body: '{"kind":"sql#instance","state":"RUNNABLE","databaseVersion":"MYSQL_5_7","settings":{"authorizedGaeApplications":[],"tier":"db-n1-standard-1","kind":"sql#settings","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"},"availabilityType":"ZONAL","pricingPlan":"PER_USE","replicationType":"SYNCHRONOUS","activationPolicy":"ALWAYS","ipConfiguration":{"authorizedNetworks":[],"sslMode":"ALLOW_UNENCRYPTED_AND_ENCRYPTED","ipv4Enabled":true,"requireSsl":false},"locationPreference":{"zone":"us-central1-a","kind":"sql#locationPreference"},"dataDiskType":"PD_SSD","backupConfiguration":{"startTime":"20:00","kind":"sql#backupConfiguration","backupRetentionSettings":{"retentionUnit":"COUNT","retainedBackups":7},"enabled":false,"transactionLogRetentionDays":7,"transactionalLogStorageState":"TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED"},"connectorEnforcement":"NOT_REQUIRED","settingsVersion":"1","storageAutoResizeLimit":"0","storageAutoResize":true,"dataDiskSizeGb":"10","deletionProtectionEnabled":false},"etag":"da9cca3b1e7ecce33135394a5d97635dbb91d5b3eb34b91e6998d44e0307ae1b","ipAddresses":[{"type":"PRIMARY","ipAddress":"35.223.189.113"}],"serverCaCert":{"kind":"sql#sslCert","certSerialNumber":"0","cert":"-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADB3MS0wKwYDVQQuEyRlNzVh\nNzVhNi1lYzUxLTRkY2ItYWQ1Ny0yYWViN2E4NmE1OGIxIzAhBgNVBAMTGkdvb2ds\nZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkG\nA1UEBhMCVVMwHhcNMjQwNDI1MDIwODM2WhcNMzQwNDIzMDIwOTM2WjB3MS0wKwYD\nVQQuEyRlNzVhNzVhNi1lYzUxLTRkY2ItYWQ1Ny0yYWViN2E4NmE1OGIxIzAhBgNV\nBAMTGkdvb2dsZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQDOHnwixlJOq3LRBYWdDAxiZhJ3ef/yXof+ZTbr8PZGuA5kBAijtoFGckDVJL6b\n2WMEHt8nJC6LXo0p0tSyFCD7pdrMU0uXm5l/30hl+X5WXRXEsWiPgoOHB6p86bdH\n3DUiiYp3eL1+wtE921WY6FtJTf3d2ucOpRSrbqAfbyoXm+6r4q4ubizFb22ybMAQ\n6xVipkfcyyJFytLmlRBD31Tk8+GOR1yCGf6kfjf06WbknvuEluKJdEC9FBjj1OVt\nF+dMUv8BDo57TouL0pF3u531hLUe3MhpbSG7T0SOZtMItjYx9/JLehV152chdU7m\nARpJ+XUK3CE1X9USweaNkkDHAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAw\nDQYJKoZIhvcNAQELBQADggEBACptpkm2mT2EnxI/AQk8Nd5sOY3SRx5HIAiOVSFR\n/Di7sVF7CPCDVnK1nmsasr4tanbOCkj4fx9G22fuO2CXPGoPNdUVfmjTMdBIpW3B\n3F0FlNFTdw4sk3sqwSUSPf6maYCL11Cx0G40TReyUa9oBOlAZj+cGS9pFK/9ISF1\nj29LPOVtg858U+EQyLaf78/u5mLwOYoqSWO6CIUcS+gBnugFsaHnam6APjyxMYqv\nWvyyrkQ897I4lLhN6LNSIGok87zGfDiD3ntQKB0qSrUWEx2HaE+vkSutdAG1fe3t\n8ssAA+eXpciJO8dLQxq2Rd988qJhQ6Xl725/+EbcMNt5TFs=\n-----END CERTIFICATE-----","commonName":"C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=e75a75a6-ec51-4dcb-ad57-2aeb7a86a58b","sha1Fingerprint":"46282f1a50714c56ed04e066b5ce58102a8a7992","instance":"sqluser-dep-3vxr1tn21m3yp","createTime":"2024-04-25T02:08:36.863Z","expirationTime":"2034-04-23T02:09:36.863Z"},"instanceType":"CLOUD_SQL_INSTANCE","project":"example-project","serviceAccountEmailAddress":"p123456789-l5ih3n@gcp-sa-cloud-sql.iam.gserviceaccount.com","backendType":"SECOND_GEN","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","connectionName":"example-project:us-central1:sqluser-dep-3vxr1tn21m3yp","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","gceZone":"us-central1-c","databaseInstalledVersion":"MYSQL_5_7_44","maintenanceVersion":"MYSQL_5_7_44.R20240207.00_10","geminiConfig":{"entitled":false,"indexAdvisorEnabled":false,"flagRecommenderEnabled":false},"createTime":"2024-04-25T02:07:50.607Z","sqlNetworkArchitecture":"NEW_NETWORK_ARCHITECTURE"}' + body: '{"kind":"sql#instance","state":"RUNNABLE","databaseVersion":"MYSQL_5_7","settings":{"authorizedGaeApplications":[],"tier":"db-n1-standard-1","kind":"sql#settings","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"},"availabilityType":"ZONAL","pricingPlan":"PER_USE","replicationType":"SYNCHRONOUS","activationPolicy":"ALWAYS","ipConfiguration":{"authorizedNetworks":[],"sslMode":"ALLOW_UNENCRYPTED_AND_ENCRYPTED","ipv4Enabled":true,"requireSsl":false,"serverCaMode":"GOOGLE_MANAGED_INTERNAL_CA"},"locationPreference":{"zone":"us-central1-b","kind":"sql#locationPreference"},"dataDiskType":"PD_SSD","backupConfiguration":{"startTime":"12:00","kind":"sql#backupConfiguration","backupRetentionSettings":{"retentionUnit":"COUNT","retainedBackups":7},"enabled":false,"transactionLogRetentionDays":7,"transactionalLogStorageState":"TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED"},"edition":"ENTERPRISE","connectorEnforcement":"NOT_REQUIRED","settingsVersion":"1","storageAutoResizeLimit":"0","storageAutoResize":true,"dataDiskSizeGb":"10","deletionProtectionEnabled":false},"etag":"7e5ef910ac028bd4fa1e7d9e14a652e02d4884ffb6371e9714c169d1775b20a6","ipAddresses":[{"type":"PRIMARY","ipAddress":"34.134.120.174"}],"serverCaCert":{"kind":"sql#sslCert","certSerialNumber":"0","cert":"-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADB3MS0wKwYDVQQuEyQ2ZDc4\nNjRhYS1kZTRjLTQ3NzktODlhYy04ZjQ5MzU2OGJlMWMxIzAhBgNVBAMTGkdvb2ds\nZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkG\nA1UEBhMCVVMwHhcNMjQwOTEwMTk1OTE3WhcNMzQwOTA4MjAwMDE3WjB3MS0wKwYD\nVQQuEyQ2ZDc4NjRhYS1kZTRjLTQ3NzktODlhYy04ZjQ5MzU2OGJlMWMxIzAhBgNV\nBAMTGkdvb2dsZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQCWaccnvek9H981161Q3ievYkifqtAxOc0ae5jN2fT8U1wyqjDFuJIR+8eNLIrO\naF4haqsBbyDYpLvlXCuGDj19kS6Jg9ZSvFOkGU01B0T4gtgR022YL9qR3Rh0Ps1/\n21yRdsleLQIQByTjFKaehz8OqcDhuYSbMv2WWh6y6xFKNbkuKmr3O1xxYdh3MdjJ\nQn/WankHyyIUXb03QXzCkDRNyerHQdypLFv7QF6zZXicqmdI/wJse2X+1nvMLnFG\n8IeeYleZ9If/qVr0WKVAkl5WhmDnZUh+oSsCqYFSe0/RXIc/MzukCEcYQFrq7H8m\nUzEgvnt7liJrzHX7R9/iBiezAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAw\nDQYJKoZIhvcNAQELBQADggEBAC/pl9wIwfHiUoAS2ZNUV+uRP97pJvBG2TYutfyL\no1ayLI4Bn6X0ovmehmsKZ4Bk7QDmBKiiffB5WdqxP/hQuLy1OVAhuV1fN9W3DODg\nkC4X3kcr/pmfjatOKkHBiEmfK6cJYnwKNcF7yvEh/IGRxXukb2UyhcLhDex4r9VI\nnyGYQEnqFW0EoJj1L4hhBg9etzCfe+g+oYC8I3HXW5SNpnbR7giKsJlRddA+MCDa\nDd5MPWcTNcQhIY07XnbJ+NLGjkcDFZ7GboW/YjRo0bZ183otyp9VIGqv9AEXBDRW\nNlhZng8xkS6RYdpmrUe2H41R4UBq/wdUxPyA98FiegC80VA=\n-----END CERTIFICATE-----","commonName":"C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=6d7864aa-de4c-4779-89ac-8f493568be1c","sha1Fingerprint":"ff02aab5ee467fbad7bf231d0b7a7b27a3c09c25","instance":"sqluser-dep-3vxr1tn21m3yp","createTime":"2024-09-10T19:59:17.731Z","expirationTime":"2034-09-08T20:00:17.731Z"},"instanceType":"CLOUD_SQL_INSTANCE","project":"example-project","serviceAccountEmailAddress":"p123456789-s1uauf@gcp-sa-cloud-sql.iam.gserviceaccount.com","backendType":"SECOND_GEN","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","connectionName":"example-project:us-central1:sqluser-dep-3vxr1tn21m3yp","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","gceZone":"us-central1-b","databaseInstalledVersion":"MYSQL_5_7_44","maintenanceVersion":"MYSQL_5_7_44.R20240527.01_12","upgradableDatabaseVersions":[{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0","displayName":"MySQL 8.0"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_18","displayName":"MySQL 8.0.18"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_26","displayName":"MySQL 8.0.26"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_27","displayName":"MySQL 8.0.27"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_28","displayName":"MySQL 8.0.28"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_29","displayName":"MySQL 8.0.29"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_30","displayName":"MySQL 8.0.30"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_31","displayName":"MySQL 8.0.31"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_32","displayName":"MySQL 8.0.32"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_33","displayName":"MySQL 8.0.33"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_34","displayName":"MySQL 8.0.34"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_35","displayName":"MySQL 8.0.35"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_36","displayName":"MySQL 8.0.36"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_37","displayName":"MySQL 8.0.37"}],"geminiConfig":{"entitled":false,"activeQueryEnabled":false,"indexAdvisorEnabled":false,"flagRecommenderEnabled":false},"createTime":"2024-09-10T19:59:31.050Z","sqlNetworkArchitecture":"NEW_NETWORK_ARCHITECTURE","satisfiesPzi":true}' headers: - Content-Type: - - application/json; charset=UTF-8 + Content-Type: + - application/json; charset=UTF-8 status: 200 OK code: 200 - duration: 189.230423ms - - id: 13 + duration: 171.182325ms + - id: 6 request: proto: HTTP/1.1 proto_major: 1 @@ -464,8 +230,8 @@ interactions: body: "" form: {} headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp/users?alt=json&prettyPrint=false method: GET response: @@ -476,47 +242,14 @@ interactions: trailer: {} content_length: -1 uncompressed: true - body: '{"kind":"sql#usersList","items":[{"kind":"sql#user","etag":"ca86c46a09300df6a903a5ef2a665661d13f373ae9cef4cf1d6b6264e5d63a44","name":"sqluser-3vxr1tn21m3yp","host":"foo","instance":"sqluser-dep-3vxr1tn21m3yp","project":"example-project","passwordPolicy":{"status":{}}}]}' - headers: - Content-Type: - - application/json; charset=UTF-8 - status: 200 OK - code: 200 - duration: 236.007819ms - - id: 14 - request: - proto: HTTP/1.1 - proto_major: 1 - proto_minor: 1 - content_length: 0 - transfer_encoding: [] - trailer: {} - host: sqladmin.googleapis.com - remote_addr: "" - request_uri: "" - body: "" - form: {} - headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 - url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp?alt=json&prettyPrint=false - method: GET - response: - proto: HTTP/2.0 - proto_major: 2 - proto_minor: 0 - transfer_encoding: [] - trailer: {} - content_length: -1 - uncompressed: true - body: '{"kind":"sql#instance","state":"RUNNABLE","databaseVersion":"MYSQL_5_7","settings":{"authorizedGaeApplications":[],"tier":"db-n1-standard-1","kind":"sql#settings","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"},"availabilityType":"ZONAL","pricingPlan":"PER_USE","replicationType":"SYNCHRONOUS","activationPolicy":"ALWAYS","ipConfiguration":{"authorizedNetworks":[],"sslMode":"ALLOW_UNENCRYPTED_AND_ENCRYPTED","ipv4Enabled":true,"requireSsl":false},"locationPreference":{"zone":"us-central1-a","kind":"sql#locationPreference"},"dataDiskType":"PD_SSD","backupConfiguration":{"startTime":"20:00","kind":"sql#backupConfiguration","backupRetentionSettings":{"retentionUnit":"COUNT","retainedBackups":7},"enabled":false,"transactionLogRetentionDays":7,"transactionalLogStorageState":"TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED"},"connectorEnforcement":"NOT_REQUIRED","settingsVersion":"1","storageAutoResizeLimit":"0","storageAutoResize":true,"dataDiskSizeGb":"10","deletionProtectionEnabled":false},"etag":"da9cca3b1e7ecce33135394a5d97635dbb91d5b3eb34b91e6998d44e0307ae1b","ipAddresses":[{"type":"PRIMARY","ipAddress":"35.223.189.113"}],"serverCaCert":{"kind":"sql#sslCert","certSerialNumber":"0","cert":"-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADB3MS0wKwYDVQQuEyRlNzVh\nNzVhNi1lYzUxLTRkY2ItYWQ1Ny0yYWViN2E4NmE1OGIxIzAhBgNVBAMTGkdvb2ds\nZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkG\nA1UEBhMCVVMwHhcNMjQwNDI1MDIwODM2WhcNMzQwNDIzMDIwOTM2WjB3MS0wKwYD\nVQQuEyRlNzVhNzVhNi1lYzUxLTRkY2ItYWQ1Ny0yYWViN2E4NmE1OGIxIzAhBgNV\nBAMTGkdvb2dsZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQDOHnwixlJOq3LRBYWdDAxiZhJ3ef/yXof+ZTbr8PZGuA5kBAijtoFGckDVJL6b\n2WMEHt8nJC6LXo0p0tSyFCD7pdrMU0uXm5l/30hl+X5WXRXEsWiPgoOHB6p86bdH\n3DUiiYp3eL1+wtE921WY6FtJTf3d2ucOpRSrbqAfbyoXm+6r4q4ubizFb22ybMAQ\n6xVipkfcyyJFytLmlRBD31Tk8+GOR1yCGf6kfjf06WbknvuEluKJdEC9FBjj1OVt\nF+dMUv8BDo57TouL0pF3u531hLUe3MhpbSG7T0SOZtMItjYx9/JLehV152chdU7m\nARpJ+XUK3CE1X9USweaNkkDHAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAw\nDQYJKoZIhvcNAQELBQADggEBACptpkm2mT2EnxI/AQk8Nd5sOY3SRx5HIAiOVSFR\n/Di7sVF7CPCDVnK1nmsasr4tanbOCkj4fx9G22fuO2CXPGoPNdUVfmjTMdBIpW3B\n3F0FlNFTdw4sk3sqwSUSPf6maYCL11Cx0G40TReyUa9oBOlAZj+cGS9pFK/9ISF1\nj29LPOVtg858U+EQyLaf78/u5mLwOYoqSWO6CIUcS+gBnugFsaHnam6APjyxMYqv\nWvyyrkQ897I4lLhN6LNSIGok87zGfDiD3ntQKB0qSrUWEx2HaE+vkSutdAG1fe3t\n8ssAA+eXpciJO8dLQxq2Rd988qJhQ6Xl725/+EbcMNt5TFs=\n-----END CERTIFICATE-----","commonName":"C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=e75a75a6-ec51-4dcb-ad57-2aeb7a86a58b","sha1Fingerprint":"46282f1a50714c56ed04e066b5ce58102a8a7992","instance":"sqluser-dep-3vxr1tn21m3yp","createTime":"2024-04-25T02:08:36.863Z","expirationTime":"2034-04-23T02:09:36.863Z"},"instanceType":"CLOUD_SQL_INSTANCE","project":"example-project","serviceAccountEmailAddress":"p123456789-l5ih3n@gcp-sa-cloud-sql.iam.gserviceaccount.com","backendType":"SECOND_GEN","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","connectionName":"example-project:us-central1:sqluser-dep-3vxr1tn21m3yp","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","gceZone":"us-central1-c","databaseInstalledVersion":"MYSQL_5_7_44","maintenanceVersion":"MYSQL_5_7_44.R20240207.00_10","geminiConfig":{"entitled":false,"indexAdvisorEnabled":false,"flagRecommenderEnabled":false},"createTime":"2024-04-25T02:07:50.607Z","sqlNetworkArchitecture":"NEW_NETWORK_ARCHITECTURE"}' + body: '{"kind":"sql#usersList","items":[{"kind":"sql#user","etag":"901e6d40cf7f5ac2b0ec3ab5553497665f778868946466448773e85cf450ce20","name":"sqluser-3vxr1tn21m3yp","host":"foo","instance":"sqluser-dep-3vxr1tn21m3yp","project":"example-project","passwordPolicy":{"status":{}}}]}' headers: - Content-Type: - - application/json; charset=UTF-8 + Content-Type: + - application/json; charset=UTF-8 status: 200 OK code: 200 - duration: 184.989465ms - - id: 15 + duration: 218.95481ms + - id: 7 request: proto: HTTP/1.1 proto_major: 1 @@ -530,8 +263,8 @@ interactions: body: "" form: {} headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp?alt=json&prettyPrint=false method: GET response: @@ -542,14 +275,14 @@ interactions: trailer: {} content_length: -1 uncompressed: true - body: '{"kind":"sql#instance","state":"RUNNABLE","databaseVersion":"MYSQL_5_7","settings":{"authorizedGaeApplications":[],"tier":"db-n1-standard-1","kind":"sql#settings","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"},"availabilityType":"ZONAL","pricingPlan":"PER_USE","replicationType":"SYNCHRONOUS","activationPolicy":"ALWAYS","ipConfiguration":{"authorizedNetworks":[],"sslMode":"ALLOW_UNENCRYPTED_AND_ENCRYPTED","ipv4Enabled":true,"requireSsl":false},"locationPreference":{"zone":"us-central1-a","kind":"sql#locationPreference"},"dataDiskType":"PD_SSD","backupConfiguration":{"startTime":"20:00","kind":"sql#backupConfiguration","backupRetentionSettings":{"retentionUnit":"COUNT","retainedBackups":7},"enabled":false,"transactionLogRetentionDays":7,"transactionalLogStorageState":"TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED"},"connectorEnforcement":"NOT_REQUIRED","settingsVersion":"1","storageAutoResizeLimit":"0","storageAutoResize":true,"dataDiskSizeGb":"10","deletionProtectionEnabled":false},"etag":"da9cca3b1e7ecce33135394a5d97635dbb91d5b3eb34b91e6998d44e0307ae1b","ipAddresses":[{"type":"PRIMARY","ipAddress":"35.223.189.113"}],"serverCaCert":{"kind":"sql#sslCert","certSerialNumber":"0","cert":"-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADB3MS0wKwYDVQQuEyRlNzVh\nNzVhNi1lYzUxLTRkY2ItYWQ1Ny0yYWViN2E4NmE1OGIxIzAhBgNVBAMTGkdvb2ds\nZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkG\nA1UEBhMCVVMwHhcNMjQwNDI1MDIwODM2WhcNMzQwNDIzMDIwOTM2WjB3MS0wKwYD\nVQQuEyRlNzVhNzVhNi1lYzUxLTRkY2ItYWQ1Ny0yYWViN2E4NmE1OGIxIzAhBgNV\nBAMTGkdvb2dsZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQDOHnwixlJOq3LRBYWdDAxiZhJ3ef/yXof+ZTbr8PZGuA5kBAijtoFGckDVJL6b\n2WMEHt8nJC6LXo0p0tSyFCD7pdrMU0uXm5l/30hl+X5WXRXEsWiPgoOHB6p86bdH\n3DUiiYp3eL1+wtE921WY6FtJTf3d2ucOpRSrbqAfbyoXm+6r4q4ubizFb22ybMAQ\n6xVipkfcyyJFytLmlRBD31Tk8+GOR1yCGf6kfjf06WbknvuEluKJdEC9FBjj1OVt\nF+dMUv8BDo57TouL0pF3u531hLUe3MhpbSG7T0SOZtMItjYx9/JLehV152chdU7m\nARpJ+XUK3CE1X9USweaNkkDHAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAw\nDQYJKoZIhvcNAQELBQADggEBACptpkm2mT2EnxI/AQk8Nd5sOY3SRx5HIAiOVSFR\n/Di7sVF7CPCDVnK1nmsasr4tanbOCkj4fx9G22fuO2CXPGoPNdUVfmjTMdBIpW3B\n3F0FlNFTdw4sk3sqwSUSPf6maYCL11Cx0G40TReyUa9oBOlAZj+cGS9pFK/9ISF1\nj29LPOVtg858U+EQyLaf78/u5mLwOYoqSWO6CIUcS+gBnugFsaHnam6APjyxMYqv\nWvyyrkQ897I4lLhN6LNSIGok87zGfDiD3ntQKB0qSrUWEx2HaE+vkSutdAG1fe3t\n8ssAA+eXpciJO8dLQxq2Rd988qJhQ6Xl725/+EbcMNt5TFs=\n-----END CERTIFICATE-----","commonName":"C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=e75a75a6-ec51-4dcb-ad57-2aeb7a86a58b","sha1Fingerprint":"46282f1a50714c56ed04e066b5ce58102a8a7992","instance":"sqluser-dep-3vxr1tn21m3yp","createTime":"2024-04-25T02:08:36.863Z","expirationTime":"2034-04-23T02:09:36.863Z"},"instanceType":"CLOUD_SQL_INSTANCE","project":"example-project","serviceAccountEmailAddress":"p123456789-l5ih3n@gcp-sa-cloud-sql.iam.gserviceaccount.com","backendType":"SECOND_GEN","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","connectionName":"example-project:us-central1:sqluser-dep-3vxr1tn21m3yp","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","gceZone":"us-central1-c","databaseInstalledVersion":"MYSQL_5_7_44","maintenanceVersion":"MYSQL_5_7_44.R20240207.00_10","geminiConfig":{"entitled":false,"indexAdvisorEnabled":false,"flagRecommenderEnabled":false},"createTime":"2024-04-25T02:07:50.607Z","sqlNetworkArchitecture":"NEW_NETWORK_ARCHITECTURE"}' + body: '{"kind":"sql#instance","state":"RUNNABLE","databaseVersion":"MYSQL_5_7","settings":{"authorizedGaeApplications":[],"tier":"db-n1-standard-1","kind":"sql#settings","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"},"availabilityType":"ZONAL","pricingPlan":"PER_USE","replicationType":"SYNCHRONOUS","activationPolicy":"ALWAYS","ipConfiguration":{"authorizedNetworks":[],"sslMode":"ALLOW_UNENCRYPTED_AND_ENCRYPTED","ipv4Enabled":true,"requireSsl":false,"serverCaMode":"GOOGLE_MANAGED_INTERNAL_CA"},"locationPreference":{"zone":"us-central1-b","kind":"sql#locationPreference"},"dataDiskType":"PD_SSD","backupConfiguration":{"startTime":"12:00","kind":"sql#backupConfiguration","backupRetentionSettings":{"retentionUnit":"COUNT","retainedBackups":7},"enabled":false,"transactionLogRetentionDays":7,"transactionalLogStorageState":"TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED"},"edition":"ENTERPRISE","connectorEnforcement":"NOT_REQUIRED","settingsVersion":"1","storageAutoResizeLimit":"0","storageAutoResize":true,"dataDiskSizeGb":"10","deletionProtectionEnabled":false},"etag":"7e5ef910ac028bd4fa1e7d9e14a652e02d4884ffb6371e9714c169d1775b20a6","ipAddresses":[{"type":"PRIMARY","ipAddress":"34.134.120.174"}],"serverCaCert":{"kind":"sql#sslCert","certSerialNumber":"0","cert":"-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADB3MS0wKwYDVQQuEyQ2ZDc4\nNjRhYS1kZTRjLTQ3NzktODlhYy04ZjQ5MzU2OGJlMWMxIzAhBgNVBAMTGkdvb2ds\nZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkG\nA1UEBhMCVVMwHhcNMjQwOTEwMTk1OTE3WhcNMzQwOTA4MjAwMDE3WjB3MS0wKwYD\nVQQuEyQ2ZDc4NjRhYS1kZTRjLTQ3NzktODlhYy04ZjQ5MzU2OGJlMWMxIzAhBgNV\nBAMTGkdvb2dsZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQCWaccnvek9H981161Q3ievYkifqtAxOc0ae5jN2fT8U1wyqjDFuJIR+8eNLIrO\naF4haqsBbyDYpLvlXCuGDj19kS6Jg9ZSvFOkGU01B0T4gtgR022YL9qR3Rh0Ps1/\n21yRdsleLQIQByTjFKaehz8OqcDhuYSbMv2WWh6y6xFKNbkuKmr3O1xxYdh3MdjJ\nQn/WankHyyIUXb03QXzCkDRNyerHQdypLFv7QF6zZXicqmdI/wJse2X+1nvMLnFG\n8IeeYleZ9If/qVr0WKVAkl5WhmDnZUh+oSsCqYFSe0/RXIc/MzukCEcYQFrq7H8m\nUzEgvnt7liJrzHX7R9/iBiezAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAw\nDQYJKoZIhvcNAQELBQADggEBAC/pl9wIwfHiUoAS2ZNUV+uRP97pJvBG2TYutfyL\no1ayLI4Bn6X0ovmehmsKZ4Bk7QDmBKiiffB5WdqxP/hQuLy1OVAhuV1fN9W3DODg\nkC4X3kcr/pmfjatOKkHBiEmfK6cJYnwKNcF7yvEh/IGRxXukb2UyhcLhDex4r9VI\nnyGYQEnqFW0EoJj1L4hhBg9etzCfe+g+oYC8I3HXW5SNpnbR7giKsJlRddA+MCDa\nDd5MPWcTNcQhIY07XnbJ+NLGjkcDFZ7GboW/YjRo0bZ183otyp9VIGqv9AEXBDRW\nNlhZng8xkS6RYdpmrUe2H41R4UBq/wdUxPyA98FiegC80VA=\n-----END CERTIFICATE-----","commonName":"C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=6d7864aa-de4c-4779-89ac-8f493568be1c","sha1Fingerprint":"ff02aab5ee467fbad7bf231d0b7a7b27a3c09c25","instance":"sqluser-dep-3vxr1tn21m3yp","createTime":"2024-09-10T19:59:17.731Z","expirationTime":"2034-09-08T20:00:17.731Z"},"instanceType":"CLOUD_SQL_INSTANCE","project":"example-project","serviceAccountEmailAddress":"p123456789-s1uauf@gcp-sa-cloud-sql.iam.gserviceaccount.com","backendType":"SECOND_GEN","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","connectionName":"example-project:us-central1:sqluser-dep-3vxr1tn21m3yp","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","gceZone":"us-central1-b","databaseInstalledVersion":"MYSQL_5_7_44","maintenanceVersion":"MYSQL_5_7_44.R20240527.01_12","upgradableDatabaseVersions":[{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0","displayName":"MySQL 8.0"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_18","displayName":"MySQL 8.0.18"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_26","displayName":"MySQL 8.0.26"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_27","displayName":"MySQL 8.0.27"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_28","displayName":"MySQL 8.0.28"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_29","displayName":"MySQL 8.0.29"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_30","displayName":"MySQL 8.0.30"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_31","displayName":"MySQL 8.0.31"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_32","displayName":"MySQL 8.0.32"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_33","displayName":"MySQL 8.0.33"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_34","displayName":"MySQL 8.0.34"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_35","displayName":"MySQL 8.0.35"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_36","displayName":"MySQL 8.0.36"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_37","displayName":"MySQL 8.0.37"}],"geminiConfig":{"entitled":false,"activeQueryEnabled":false,"indexAdvisorEnabled":false,"flagRecommenderEnabled":false},"createTime":"2024-09-10T19:59:31.050Z","sqlNetworkArchitecture":"NEW_NETWORK_ARCHITECTURE","satisfiesPzi":true}' headers: - Content-Type: - - application/json; charset=UTF-8 + Content-Type: + - application/json; charset=UTF-8 status: 200 OK code: 200 - duration: 201.386359ms - - id: 16 + duration: 178.786434ms + - id: 8 request: proto: HTTP/1.1 proto_major: 1 @@ -563,8 +296,8 @@ interactions: body: "" form: {} headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp/users?alt=json&prettyPrint=false method: GET response: @@ -575,14 +308,14 @@ interactions: trailer: {} content_length: -1 uncompressed: true - body: '{"kind":"sql#usersList","items":[{"kind":"sql#user","etag":"ca86c46a09300df6a903a5ef2a665661d13f373ae9cef4cf1d6b6264e5d63a44","name":"sqluser-3vxr1tn21m3yp","host":"foo","instance":"sqluser-dep-3vxr1tn21m3yp","project":"example-project","passwordPolicy":{"status":{}}}]}' + body: '{"kind":"sql#usersList","items":[{"kind":"sql#user","etag":"901e6d40cf7f5ac2b0ec3ab5553497665f778868946466448773e85cf450ce20","name":"sqluser-3vxr1tn21m3yp","host":"foo","instance":"sqluser-dep-3vxr1tn21m3yp","project":"example-project","passwordPolicy":{"status":{}}}]}' headers: - Content-Type: - - application/json; charset=UTF-8 + Content-Type: + - application/json; charset=UTF-8 status: 200 OK code: 200 - duration: 221.962986ms - - id: 17 + duration: 214.78903ms + - id: 9 request: proto: HTTP/1.1 proto_major: 1 @@ -596,8 +329,8 @@ interactions: body: "" form: {} headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp?alt=json&prettyPrint=false method: GET response: @@ -608,14 +341,14 @@ interactions: trailer: {} content_length: -1 uncompressed: true - body: '{"kind":"sql#instance","state":"RUNNABLE","databaseVersion":"MYSQL_5_7","settings":{"authorizedGaeApplications":[],"tier":"db-n1-standard-1","kind":"sql#settings","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"},"availabilityType":"ZONAL","pricingPlan":"PER_USE","replicationType":"SYNCHRONOUS","activationPolicy":"ALWAYS","ipConfiguration":{"authorizedNetworks":[],"sslMode":"ALLOW_UNENCRYPTED_AND_ENCRYPTED","ipv4Enabled":true,"requireSsl":false},"locationPreference":{"zone":"us-central1-a","kind":"sql#locationPreference"},"dataDiskType":"PD_SSD","backupConfiguration":{"startTime":"20:00","kind":"sql#backupConfiguration","backupRetentionSettings":{"retentionUnit":"COUNT","retainedBackups":7},"enabled":false,"transactionLogRetentionDays":7,"transactionalLogStorageState":"TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED"},"connectorEnforcement":"NOT_REQUIRED","settingsVersion":"1","storageAutoResizeLimit":"0","storageAutoResize":true,"dataDiskSizeGb":"10","deletionProtectionEnabled":false},"etag":"da9cca3b1e7ecce33135394a5d97635dbb91d5b3eb34b91e6998d44e0307ae1b","ipAddresses":[{"type":"PRIMARY","ipAddress":"35.223.189.113"}],"serverCaCert":{"kind":"sql#sslCert","certSerialNumber":"0","cert":"-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADB3MS0wKwYDVQQuEyRlNzVh\nNzVhNi1lYzUxLTRkY2ItYWQ1Ny0yYWViN2E4NmE1OGIxIzAhBgNVBAMTGkdvb2ds\nZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkG\nA1UEBhMCVVMwHhcNMjQwNDI1MDIwODM2WhcNMzQwNDIzMDIwOTM2WjB3MS0wKwYD\nVQQuEyRlNzVhNzVhNi1lYzUxLTRkY2ItYWQ1Ny0yYWViN2E4NmE1OGIxIzAhBgNV\nBAMTGkdvb2dsZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQDOHnwixlJOq3LRBYWdDAxiZhJ3ef/yXof+ZTbr8PZGuA5kBAijtoFGckDVJL6b\n2WMEHt8nJC6LXo0p0tSyFCD7pdrMU0uXm5l/30hl+X5WXRXEsWiPgoOHB6p86bdH\n3DUiiYp3eL1+wtE921WY6FtJTf3d2ucOpRSrbqAfbyoXm+6r4q4ubizFb22ybMAQ\n6xVipkfcyyJFytLmlRBD31Tk8+GOR1yCGf6kfjf06WbknvuEluKJdEC9FBjj1OVt\nF+dMUv8BDo57TouL0pF3u531hLUe3MhpbSG7T0SOZtMItjYx9/JLehV152chdU7m\nARpJ+XUK3CE1X9USweaNkkDHAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAw\nDQYJKoZIhvcNAQELBQADggEBACptpkm2mT2EnxI/AQk8Nd5sOY3SRx5HIAiOVSFR\n/Di7sVF7CPCDVnK1nmsasr4tanbOCkj4fx9G22fuO2CXPGoPNdUVfmjTMdBIpW3B\n3F0FlNFTdw4sk3sqwSUSPf6maYCL11Cx0G40TReyUa9oBOlAZj+cGS9pFK/9ISF1\nj29LPOVtg858U+EQyLaf78/u5mLwOYoqSWO6CIUcS+gBnugFsaHnam6APjyxMYqv\nWvyyrkQ897I4lLhN6LNSIGok87zGfDiD3ntQKB0qSrUWEx2HaE+vkSutdAG1fe3t\n8ssAA+eXpciJO8dLQxq2Rd988qJhQ6Xl725/+EbcMNt5TFs=\n-----END CERTIFICATE-----","commonName":"C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=e75a75a6-ec51-4dcb-ad57-2aeb7a86a58b","sha1Fingerprint":"46282f1a50714c56ed04e066b5ce58102a8a7992","instance":"sqluser-dep-3vxr1tn21m3yp","createTime":"2024-04-25T02:08:36.863Z","expirationTime":"2034-04-23T02:09:36.863Z"},"instanceType":"CLOUD_SQL_INSTANCE","project":"example-project","serviceAccountEmailAddress":"p123456789-l5ih3n@gcp-sa-cloud-sql.iam.gserviceaccount.com","backendType":"SECOND_GEN","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","connectionName":"example-project:us-central1:sqluser-dep-3vxr1tn21m3yp","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","gceZone":"us-central1-c","databaseInstalledVersion":"MYSQL_5_7_44","maintenanceVersion":"MYSQL_5_7_44.R20240207.00_10","geminiConfig":{"entitled":false,"indexAdvisorEnabled":false,"flagRecommenderEnabled":false},"createTime":"2024-04-25T02:07:50.607Z","sqlNetworkArchitecture":"NEW_NETWORK_ARCHITECTURE"}' + body: '{"kind":"sql#instance","state":"RUNNABLE","databaseVersion":"MYSQL_5_7","settings":{"authorizedGaeApplications":[],"tier":"db-n1-standard-1","kind":"sql#settings","userLabels":{"cnrm-test":"true","managed-by-cnrm":"true"},"availabilityType":"ZONAL","pricingPlan":"PER_USE","replicationType":"SYNCHRONOUS","activationPolicy":"ALWAYS","ipConfiguration":{"authorizedNetworks":[],"sslMode":"ALLOW_UNENCRYPTED_AND_ENCRYPTED","ipv4Enabled":true,"requireSsl":false,"serverCaMode":"GOOGLE_MANAGED_INTERNAL_CA"},"locationPreference":{"zone":"us-central1-b","kind":"sql#locationPreference"},"dataDiskType":"PD_SSD","backupConfiguration":{"startTime":"12:00","kind":"sql#backupConfiguration","backupRetentionSettings":{"retentionUnit":"COUNT","retainedBackups":7},"enabled":false,"transactionLogRetentionDays":7,"transactionalLogStorageState":"TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED"},"edition":"ENTERPRISE","connectorEnforcement":"NOT_REQUIRED","settingsVersion":"1","storageAutoResizeLimit":"0","storageAutoResize":true,"dataDiskSizeGb":"10","deletionProtectionEnabled":false},"etag":"7e5ef910ac028bd4fa1e7d9e14a652e02d4884ffb6371e9714c169d1775b20a6","ipAddresses":[{"type":"PRIMARY","ipAddress":"34.134.120.174"}],"serverCaCert":{"kind":"sql#sslCert","certSerialNumber":"0","cert":"-----BEGIN CERTIFICATE-----\nMIIDfzCCAmegAwIBAgIBADANBgkqhkiG9w0BAQsFADB3MS0wKwYDVQQuEyQ2ZDc4\nNjRhYS1kZTRjLTQ3NzktODlhYy04ZjQ5MzU2OGJlMWMxIzAhBgNVBAMTGkdvb2ds\nZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkG\nA1UEBhMCVVMwHhcNMjQwOTEwMTk1OTE3WhcNMzQwOTA4MjAwMDE3WjB3MS0wKwYD\nVQQuEyQ2ZDc4NjRhYS1kZTRjLTQ3NzktODlhYy04ZjQ5MzU2OGJlMWMxIzAhBgNV\nBAMTGkdvb2dsZSBDbG91ZCBTUUwgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUs\nIEluYzELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQCWaccnvek9H981161Q3ievYkifqtAxOc0ae5jN2fT8U1wyqjDFuJIR+8eNLIrO\naF4haqsBbyDYpLvlXCuGDj19kS6Jg9ZSvFOkGU01B0T4gtgR022YL9qR3Rh0Ps1/\n21yRdsleLQIQByTjFKaehz8OqcDhuYSbMv2WWh6y6xFKNbkuKmr3O1xxYdh3MdjJ\nQn/WankHyyIUXb03QXzCkDRNyerHQdypLFv7QF6zZXicqmdI/wJse2X+1nvMLnFG\n8IeeYleZ9If/qVr0WKVAkl5WhmDnZUh+oSsCqYFSe0/RXIc/MzukCEcYQFrq7H8m\nUzEgvnt7liJrzHX7R9/iBiezAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAw\nDQYJKoZIhvcNAQELBQADggEBAC/pl9wIwfHiUoAS2ZNUV+uRP97pJvBG2TYutfyL\no1ayLI4Bn6X0ovmehmsKZ4Bk7QDmBKiiffB5WdqxP/hQuLy1OVAhuV1fN9W3DODg\nkC4X3kcr/pmfjatOKkHBiEmfK6cJYnwKNcF7yvEh/IGRxXukb2UyhcLhDex4r9VI\nnyGYQEnqFW0EoJj1L4hhBg9etzCfe+g+oYC8I3HXW5SNpnbR7giKsJlRddA+MCDa\nDd5MPWcTNcQhIY07XnbJ+NLGjkcDFZ7GboW/YjRo0bZ183otyp9VIGqv9AEXBDRW\nNlhZng8xkS6RYdpmrUe2H41R4UBq/wdUxPyA98FiegC80VA=\n-----END CERTIFICATE-----","commonName":"C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=6d7864aa-de4c-4779-89ac-8f493568be1c","sha1Fingerprint":"ff02aab5ee467fbad7bf231d0b7a7b27a3c09c25","instance":"sqluser-dep-3vxr1tn21m3yp","createTime":"2024-09-10T19:59:17.731Z","expirationTime":"2034-09-08T20:00:17.731Z"},"instanceType":"CLOUD_SQL_INSTANCE","project":"example-project","serviceAccountEmailAddress":"p123456789-s1uauf@gcp-sa-cloud-sql.iam.gserviceaccount.com","backendType":"SECOND_GEN","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","connectionName":"example-project:us-central1:sqluser-dep-3vxr1tn21m3yp","name":"sqluser-dep-3vxr1tn21m3yp","region":"us-central1","gceZone":"us-central1-b","databaseInstalledVersion":"MYSQL_5_7_44","maintenanceVersion":"MYSQL_5_7_44.R20240527.01_12","upgradableDatabaseVersions":[{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0","displayName":"MySQL 8.0"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_18","displayName":"MySQL 8.0.18"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_26","displayName":"MySQL 8.0.26"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_27","displayName":"MySQL 8.0.27"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_28","displayName":"MySQL 8.0.28"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_29","displayName":"MySQL 8.0.29"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_30","displayName":"MySQL 8.0.30"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_31","displayName":"MySQL 8.0.31"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_32","displayName":"MySQL 8.0.32"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_33","displayName":"MySQL 8.0.33"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_34","displayName":"MySQL 8.0.34"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_35","displayName":"MySQL 8.0.35"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_36","displayName":"MySQL 8.0.36"},{"majorVersion":"MYSQL_8_0","name":"MYSQL_8_0_37","displayName":"MySQL 8.0.37"}],"geminiConfig":{"entitled":false,"activeQueryEnabled":false,"indexAdvisorEnabled":false,"flagRecommenderEnabled":false},"createTime":"2024-09-10T19:59:31.050Z","sqlNetworkArchitecture":"NEW_NETWORK_ARCHITECTURE","satisfiesPzi":true}' headers: - Content-Type: - - application/json; charset=UTF-8 + Content-Type: + - application/json; charset=UTF-8 status: 200 OK code: 200 - duration: 191.021067ms - - id: 18 + duration: 166.054385ms + - id: 10 request: proto: HTTP/1.1 proto_major: 1 @@ -629,9 +362,9 @@ interactions: body: "" form: {} headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 - url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp?alt=json&prettyPrint=false + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 + url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp/users?alt=json&host=foo&name=sqluser-3vxr1tn21m3yp&prettyPrint=false method: DELETE response: proto: HTTP/2.0 @@ -641,14 +374,35 @@ interactions: trailer: {} content_length: -1 uncompressed: true - body: '{"kind":"sql#operation","targetLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","status":"PENDING","user":"integration-test@example-project.iam.gserviceaccount.com","insertTime":"2024-04-25T02:11:25.373Z","operationType":"DELETE","name":"74f54590-6ff9-40a4-bd87-5f7c00000032","targetId":"sqluser-dep-3vxr1tn21m3yp","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/operations/74f54590-6ff9-40a4-bd87-5f7c00000032","targetProject":"example-project"}' - headers: - Content-Type: - - application/json; charset=UTF-8 - status: 200 OK - code: 200 - duration: 420.478415ms - - id: 19 + body: | + { + "error": { + "code": 500, + "message": "Internal error encountered.", + "errors": [ + { + "message": "Internal error encountered.", + "domain": "global", + "reason": "backendError", + "debugInfo": "detail: \"[ORIGINAL ERROR] RPC::SERVER_ERROR: Exception thrown by server-side application: java.util.NoSuchElementException: No value present\"\n" + } + ], + "status": "INTERNAL", + "details": [ + { + "@type": "type.googleapis.com/google.rpc.DebugInfo", + "detail": "[ORIGINAL ERROR] RPC::SERVER_ERROR: Exception thrown by server-side application: java.util.NoSuchElementException: No value present" + } + ] + } + } + headers: + Content-Type: + - application/json; charset=UTF-8 + status: 500 Internal Server Error + code: 500 + duration: 832.435594ms + - id: 11 request: proto: HTTP/1.1 proto_major: 1 @@ -662,8 +416,8 @@ interactions: body: "" form: {} headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 + X-Goog-Api-Client: + - gl-go/1.22.5 gdcl/0.194.0 url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp/users?alt=json&host=foo&name=sqluser-3vxr1tn21m3yp&prettyPrint=false method: DELETE response: @@ -676,41 +430,8 @@ interactions: uncompressed: true body: fake error message headers: - Content-Type: - - application/json; charset=UTF-8 + Content-Type: + - application/json; charset=UTF-8 status: 403 Forbidden code: 403 - duration: 155.950093ms - - id: 20 - request: - proto: HTTP/1.1 - proto_major: 1 - proto_minor: 1 - content_length: 0 - transfer_encoding: [] - trailer: {} - host: sqladmin.googleapis.com - remote_addr: "" - request_uri: "" - body: "" - form: {} - headers: - X-Goog-Api-Client: - - gl-go/1.21.5 gdcl/0.160.0 - url: https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/operations/74f54590-6ff9-40a4-bd87-5f7c00000032?alt=json&prettyPrint=false - method: GET - response: - proto: HTTP/2.0 - proto_major: 2 - proto_minor: 0 - transfer_encoding: [] - trailer: {} - content_length: -1 - uncompressed: true - body: '{"kind":"sql#operation","targetLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/instances/sqluser-dep-3vxr1tn21m3yp","status":"DONE","user":"integration-test@example-project.iam.gserviceaccount.com","insertTime":"2024-04-25T02:11:25.373Z","startTime":"2024-04-25T02:11:25.573Z","endTime":"2024-04-25T02:13:03.284Z","operationType":"DELETE","name":"74f54590-6ff9-40a4-bd87-5f7c00000032","targetId":"sqluser-dep-3vxr1tn21m3yp","selfLink":"https://sqladmin.googleapis.com/sql/v1beta4/projects/example-project/operations/74f54590-6ff9-40a4-bd87-5f7c00000032","targetProject":"example-project"}' - headers: - Content-Type: - - application/json; charset=UTF-8 - status: 200 OK - code: 200 - duration: 183.426976ms \ No newline at end of file + duration: 112.16297ms diff --git a/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagebucket/storagebucketbasic/_generated_object_storagebucketbasic.golden.yaml b/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagebucket/storagebucketbasic/_generated_object_storagebucketbasic.golden.yaml index b1ee58c04c..cb54fea869 100644 --- a/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagebucket/storagebucketbasic/_generated_object_storagebucketbasic.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagebucket/storagebucketbasic/_generated_object_storagebucketbasic.golden.yaml @@ -4,11 +4,11 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 4 + generation: 3 labels: cnrm-test: "true" label-one: value-one @@ -16,12 +16,11 @@ metadata: name: storagebucket-sample-${uniqueId} namespace: ${uniqueId} spec: + lifecycleRule: [] location: US - publicAccessPrevention: inherited resourceID: storagebucket-sample-${uniqueId} softDeletePolicy: retentionDurationSeconds: 0 - storageClass: STANDARD versioning: enabled: true status: @@ -31,9 +30,10 @@ status: reason: UpToDate status: "True" type: Ready - observedGeneration: 4 + observedGeneration: 3 observedState: softDeletePolicy: + effectiveTime: "1970-01-01T00:00:00Z" retentionDurationSeconds: 0 selfLink: https://www.googleapis.com/storage/v1/b/storagebucket-sample-${uniqueId} url: gs://storagebucket-sample-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagebucket/storagebucketsoftdelete/_generated_object_storagebucketsoftdelete.golden.yaml b/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagebucket/storagebucketsoftdelete/_generated_object_storagebucketsoftdelete.golden.yaml index e284a25973..e2001d26f6 100644 --- a/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagebucket/storagebucketsoftdelete/_generated_object_storagebucketsoftdelete.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagebucket/storagebucketsoftdelete/_generated_object_storagebucketsoftdelete.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -21,13 +21,10 @@ spec: type: Delete condition: age: 7 - withState: ANY location: US - publicAccessPrevention: inherited resourceID: storagebucket-sample-${uniqueId} softDeletePolicy: retentionDurationSeconds: 604800 - storageClass: STANDARD versioning: enabled: false status: diff --git a/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagebucket/storagebucketzero/_generated_object_storagebucketzero.golden.yaml b/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagebucket/storagebucketzero/_generated_object_storagebucketzero.golden.yaml index d4b7e391a7..1aa09a2be3 100644 --- a/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagebucket/storagebucketzero/_generated_object_storagebucketzero.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagebucket/storagebucketzero/_generated_object_storagebucketzero.golden.yaml @@ -4,11 +4,11 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 4 + generation: 3 labels: cnrm-test: "true" label-one: value-one @@ -16,12 +16,11 @@ metadata: name: storagebucket-sample-${uniqueId} namespace: ${uniqueId} spec: + lifecycleRule: [] location: US - publicAccessPrevention: inherited resourceID: storagebucket-sample-${uniqueId} softDeletePolicy: retentionDurationSeconds: 604800 - storageClass: STANDARD versioning: enabled: false status: @@ -31,7 +30,7 @@ status: reason: UpToDate status: "True" type: Ready - observedGeneration: 4 + observedGeneration: 3 observedState: softDeletePolicy: effectiveTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagenotification/storagenotificationbase/_generated_object_storagenotificationbase.golden.yaml b/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagenotification/storagenotificationbase/_generated_object_storagenotificationbase.golden.yaml index 43667cdec0..6b2b1a5e41 100644 --- a/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagenotification/storagenotificationbase/_generated_object_storagenotificationbase.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagenotification/storagenotificationbase/_generated_object_storagenotificationbase.golden.yaml @@ -3,7 +3,7 @@ kind: StorageNotification metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagenotification/storagenotificationfull/_generated_object_storagenotificationfull.golden.yaml b/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagenotification/storagenotificationfull/_generated_object_storagenotificationfull.golden.yaml index b0e02f49cd..dc07abffae 100644 --- a/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagenotification/storagenotificationfull/_generated_object_storagenotificationfull.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/storage/v1beta1/storagenotification/storagenotificationfull/_generated_object_storagenotificationfull.golden.yaml @@ -3,7 +3,7 @@ kind: StorageNotification metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/tags/v1beta1/tagstagkey/tagkeyorgbasic/_generated_object_tagkeyorgbasic.golden.yaml b/pkg/test/resourcefixture/testdata/basic/tags/v1beta1/tagstagkey/tagkeyorgbasic/_generated_object_tagkeyorgbasic.golden.yaml index 445b8e4fe9..907f8944ef 100644 --- a/pkg/test/resourcefixture/testdata/basic/tags/v1beta1/tagstagkey/tagkeyorgbasic/_generated_object_tagkeyorgbasic.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/tags/v1beta1/tagstagkey/tagkeyorgbasic/_generated_object_tagkeyorgbasic.golden.yaml @@ -3,7 +3,7 @@ kind: TagsTagKey metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/tags/v1beta1/tagstagkey/tagkeyprojectbasic/_generated_object_tagkeyprojectbasic.golden.yaml b/pkg/test/resourcefixture/testdata/basic/tags/v1beta1/tagstagkey/tagkeyprojectbasic/_generated_object_tagkeyprojectbasic.golden.yaml index 57f18444eb..5e9b7a79e9 100644 --- a/pkg/test/resourcefixture/testdata/basic/tags/v1beta1/tagstagkey/tagkeyprojectbasic/_generated_object_tagkeyprojectbasic.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/tags/v1beta1/tagstagkey/tagkeyprojectbasic/_generated_object_tagkeyprojectbasic.golden.yaml @@ -3,7 +3,7 @@ kind: TagsTagKey metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/tags/v1beta1/tagstagvalue/tagvaluebasic/_generated_object_tagvaluebasic.golden.yaml b/pkg/test/resourcefixture/testdata/basic/tags/v1beta1/tagstagvalue/tagvaluebasic/_generated_object_tagvaluebasic.golden.yaml index 83908d9200..53143caa77 100644 --- a/pkg/test/resourcefixture/testdata/basic/tags/v1beta1/tagstagvalue/tagvaluebasic/_generated_object_tagvaluebasic.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/tags/v1beta1/tagstagvalue/tagvaluebasic/_generated_object_tagvaluebasic.golden.yaml @@ -3,7 +3,7 @@ kind: TagsTagValue metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/tags/v1beta1/tagstagvalue/tagvalueproject/_generated_object_tagvalueproject.golden.yaml b/pkg/test/resourcefixture/testdata/basic/tags/v1beta1/tagstagvalue/tagvalueproject/_generated_object_tagvalueproject.golden.yaml index 0a69a9db47..17fe1dc0d6 100644 --- a/pkg/test/resourcefixture/testdata/basic/tags/v1beta1/tagstagvalue/tagvalueproject/_generated_object_tagvalueproject.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/tags/v1beta1/tagstagvalue/tagvalueproject/_generated_object_tagvalueproject.golden.yaml @@ -3,7 +3,7 @@ kind: TagsTagValue metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/basic/vertexai/v1beta1/vertexaidataset/vertexaidatasetencryptionkey/_http.log b/pkg/test/resourcefixture/testdata/basic/vertexai/v1beta1/vertexaidataset/vertexaidatasetencryptionkey/_http.log index f77af49747..44db31c192 100644 --- a/pkg/test/resourcefixture/testdata/basic/vertexai/v1beta1/vertexaidataset/vertexaidatasetencryptionkey/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/vertexai/v1beta1/vertexaidataset/vertexaidatasetencryptionkey/_http.log @@ -415,7 +415,19 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", - "purpose": "ENCRYPT_DECRYPT" + "primary": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, + "purpose": "ENCRYPT_DECRYPT", + "versionTemplate": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "protectionLevel": "SOFTWARE" + } } --- @@ -443,7 +455,19 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", - "purpose": "ENCRYPT_DECRYPT" + "primary": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, + "purpose": "ENCRYPT_DECRYPT", + "versionTemplate": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "protectionLevel": "SOFTWARE" + } } --- @@ -757,7 +781,19 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", - "purpose": "ENCRYPT_DECRYPT" + "primary": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, + "purpose": "ENCRYPT_DECRYPT", + "versionTemplate": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "protectionLevel": "SOFTWARE" + } } --- @@ -779,7 +815,7 @@ X-Xss-Protection: 0 { "cryptoKeyVersions": [ { - "algorithm": "EC_SIGN_P384_SHA384", + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", "createTime": "2024-04-01T12:34:56.123456Z", "generateTime": "2024-04-01T12:34:56.123456Z", "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", @@ -810,7 +846,7 @@ X-Frame-Options: SAMEORIGIN X-Xss-Protection: 0 { - "algorithm": "EC_SIGN_P384_SHA384", + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", "createTime": "2024-04-01T12:34:56.123456Z", "destroyTime": "2024-04-01T12:34:56.123456Z", "generateTime": "2024-04-01T12:34:56.123456Z", diff --git a/pkg/test/resourcefixture/testdata/basic/vertexai/v1beta1/vertexaiendpoint/vertexaiendpointencryptionkey/_http.log b/pkg/test/resourcefixture/testdata/basic/vertexai/v1beta1/vertexaiendpoint/vertexaiendpointencryptionkey/_http.log index 50b9e89c01..d578f511de 100644 --- a/pkg/test/resourcefixture/testdata/basic/vertexai/v1beta1/vertexaiendpoint/vertexaiendpointencryptionkey/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/vertexai/v1beta1/vertexaiendpoint/vertexaiendpointencryptionkey/_http.log @@ -415,7 +415,19 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", - "purpose": "ENCRYPT_DECRYPT" + "primary": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, + "purpose": "ENCRYPT_DECRYPT", + "versionTemplate": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "protectionLevel": "SOFTWARE" + } } --- @@ -443,7 +455,19 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", - "purpose": "ENCRYPT_DECRYPT" + "primary": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, + "purpose": "ENCRYPT_DECRYPT", + "versionTemplate": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "protectionLevel": "SOFTWARE" + } } --- @@ -731,7 +755,19 @@ X-Xss-Protection: 0 "managed-by-cnrm": "true" }, "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}", - "purpose": "ENCRYPT_DECRYPT" + "primary": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "createTime": "2024-04-01T12:34:56.123456Z", + "generateTime": "2024-04-01T12:34:56.123456Z", + "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", + "protectionLevel": "SOFTWARE", + "state": "ENABLED" + }, + "purpose": "ENCRYPT_DECRYPT", + "versionTemplate": { + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", + "protectionLevel": "SOFTWARE" + } } --- @@ -753,7 +789,7 @@ X-Xss-Protection: 0 { "cryptoKeyVersions": [ { - "algorithm": "EC_SIGN_P384_SHA384", + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", "createTime": "2024-04-01T12:34:56.123456Z", "generateTime": "2024-04-01T12:34:56.123456Z", "name": "projects/${projectId}/locations/us-central1/keyRings/kmskeyring-${uniqueId}/cryptoKeys/kmscryptokey-${uniqueId}/cryptoKeyVersions/1", @@ -784,7 +820,7 @@ X-Frame-Options: SAMEORIGIN X-Xss-Protection: 0 { - "algorithm": "EC_SIGN_P384_SHA384", + "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", "createTime": "2024-04-01T12:34:56.123456Z", "destroyTime": "2024-04-01T12:34:56.123456Z", "generateTime": "2024-04-01T12:34:56.123456Z", diff --git a/pkg/test/resourcefixture/testdata/basic/vertexai/v1beta1/vertexaiendpoint/vertexaiendpointnetwork/_http.log b/pkg/test/resourcefixture/testdata/basic/vertexai/v1beta1/vertexaiendpoint/vertexaiendpointnetwork/_http.log index 1c13fadcfd..a2aec7c29c 100644 --- a/pkg/test/resourcefixture/testdata/basic/vertexai/v1beta1/vertexaiendpoint/vertexaiendpointnetwork/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/vertexai/v1beta1/vertexaiendpoint/vertexaiendpointnetwork/_http.log @@ -190,10 +190,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "insert", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- @@ -1152,10 +1188,46 @@ X-Xss-Protection: 0 "insertTime": "2024-04-01T12:34:56.123456Z", "kind": "compute#operation", "name": "${operationID}", + "operationType": "delete", "progress": 0, "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" + "status": "RUNNING", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${addressesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/addresses/computeaddress-${uniqueId}", + "user": "user@example.com" } --- diff --git a/pkg/test/resourcefixture/testdata/containerannotations/folderid/_generated_object_folderid.golden.yaml b/pkg/test/resourcefixture/testdata/containerannotations/folderid/_generated_object_folderid.golden.yaml index bdfdd9ae6d..4b2e985712 100644 --- a/pkg/test/resourcefixture/testdata/containerannotations/folderid/_generated_object_folderid.golden.yaml +++ b/pkg/test/resourcefixture/testdata/containerannotations/folderid/_generated_object_folderid.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/folder-id: "123451001" cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/containerannotations/projectid/_generated_object_projectid.golden.yaml b/pkg/test/resourcefixture/testdata/containerannotations/projectid/_generated_object_projectid.golden.yaml index 7a71a22283..002fd319cd 100644 --- a/pkg/test/resourcefixture/testdata/containerannotations/projectid/_generated_object_projectid.golden.yaml +++ b/pkg/test/resourcefixture/testdata/containerannotations/projectid/_generated_object_projectid.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -14,17 +14,7 @@ metadata: name: bigquerydatasetsample${uniqueId} namespace: ${uniqueId} spec: - access: - - role: OWNER - specialGroup: projectOwners - - role: OWNER - userByEmail: user@google.com - - role: READER - specialGroup: projectReaders - - role: WRITER - specialGroup: projectWriters friendlyName: bigquerydataset-sample-updated - location: US projectRef: external: ${projectId} resourceID: bigquerydatasetsample${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/directives/forcedestroy/_generated_object_forcedestroy.golden.yaml b/pkg/test/resourcefixture/testdata/directives/forcedestroy/_generated_object_forcedestroy.golden.yaml index 00584f17df..9fc79e776d 100644 --- a/pkg/test/resourcefixture/testdata/directives/forcedestroy/_generated_object_forcedestroy.golden.yaml +++ b/pkg/test/resourcefixture/testdata/directives/forcedestroy/_generated_object_forcedestroy.golden.yaml @@ -5,7 +5,7 @@ metadata: cnrm.cloud.google.com/force-destroy: "true" cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -18,11 +18,7 @@ metadata: namespace: ${uniqueId} spec: location: US - publicAccessPrevention: inherited resourceID: storagebucket-sample-${uniqueId} - softDeletePolicy: - retentionDurationSeconds: 604800 - storageClass: STANDARD versioning: enabled: true status: diff --git a/pkg/test/resourcefixture/testdata/directives/removedefaultnodepool/_generated_object_removedefaultnodepool.golden.yaml b/pkg/test/resourcefixture/testdata/directives/removedefaultnodepool/_generated_object_removedefaultnodepool.golden.yaml index fca26a4ddd..2d17ddb266 100644 --- a/pkg/test/resourcefixture/testdata/directives/removedefaultnodepool/_generated_object_removedefaultnodepool.golden.yaml +++ b/pkg/test/resourcefixture/testdata/directives/removedefaultnodepool/_generated_object_removedefaultnodepool.golden.yaml @@ -7,7 +7,7 @@ metadata: cnrm.cloud.google.com/observed-secret-versions: (removed) cnrm.cloud.google.com/project-id: ${projectId} cnrm.cloud.google.com/remove-default-node-pool: "true" - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -18,63 +18,11 @@ metadata: name: cluster-sample-${uniqueId} namespace: ${uniqueId} spec: - addonsConfig: - gcePersistentDiskCsiDriverConfig: - enabled: true - networkPolicyConfig: - disabled: true - clusterAutoscaling: - autoscalingProfile: BALANCED - clusterTelemetry: - type: ENABLED - databaseEncryption: - state: DECRYPTED - enableShieldedNodes: true initialNodeCount: 1 location: us-central1-a - loggingConfig: - enableComponents: - - SYSTEM_COMPONENTS - - WORKLOADS loggingService: none - monitoringConfig: - advancedDatapathObservabilityConfig: - - enableMetrics: false - enableComponents: - - SYSTEM_COMPONENTS - managedPrometheus: - enabled: true monitoringService: none - networkPolicy: - enabled: false - networkRef: - external: projects/${projectId}/global/networks/default - networkingMode: ROUTES - nodeConfig: - loggingVariant: DEFAULT - oauthScopes: - - https://www.googleapis.com/auth/devstorage.read_only - - https://www.googleapis.com/auth/logging.write - - https://www.googleapis.com/auth/monitoring - - https://www.googleapis.com/auth/service.management.readonly - - https://www.googleapis.com/auth/servicecontrol - - https://www.googleapis.com/auth/trace.append - nodeLocations: - - us-central1-a - nodeVersion: "" - notificationConfig: - pubsub: - enabled: false - podSecurityPolicyConfig: - enabled: false - releaseChannel: - channel: REGULAR resourceID: cluster-sample-${uniqueId} - securityPostureConfig: - mode: BASIC - vulnerabilityMode: VULNERABILITY_MODE_UNSPECIFIED - subnetworkRef: - external: projects/${projectId}/regions/us-central1-a/subnetworks/default status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/externalref/externalwithname/_generated_object_externalwithname.golden.yaml b/pkg/test/resourcefixture/testdata/externalref/externalwithname/_generated_object_externalwithname.golden.yaml index 2d4807897f..8d93b4a83d 100644 --- a/pkg/test/resourcefixture/testdata/externalref/externalwithname/_generated_object_externalwithname.golden.yaml +++ b/pkg/test/resourcefixture/testdata/externalref/externalwithname/_generated_object_externalwithname.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -15,9 +15,6 @@ metadata: namespace: ${uniqueId} spec: ackDeadlineSeconds: 20 - expirationPolicy: - ttl: 2678400s - messageRetentionDuration: 604800s resourceID: pubsubsubscription-${uniqueId} topicRef: external: pubsubtopic-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/externalref/externalwithpartialuri/_generated_object_externalwithpartialuri.golden.yaml b/pkg/test/resourcefixture/testdata/externalref/externalwithpartialuri/_generated_object_externalwithpartialuri.golden.yaml index 022db91760..7fa744cf2d 100644 --- a/pkg/test/resourcefixture/testdata/externalref/externalwithpartialuri/_generated_object_externalwithpartialuri.golden.yaml +++ b/pkg/test/resourcefixture/testdata/externalref/externalwithpartialuri/_generated_object_externalwithpartialuri.golden.yaml @@ -1,24 +1,10 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeVPNGateway metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -32,7 +18,6 @@ spec: external: projects/${projectId}/global/networks/default region: us-central1 resourceID: computevpngateway-${uniqueId} - stackType: IPV4_ONLY status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/externalref/externalwithsubresource/_generated_object_externalwithsubresource.golden.yaml b/pkg/test/resourcefixture/testdata/externalref/externalwithsubresource/_generated_object_externalwithsubresource.golden.yaml index a7fd8e22e7..654ee87aae 100644 --- a/pkg/test/resourcefixture/testdata/externalref/externalwithsubresource/_generated_object_externalwithsubresource.golden.yaml +++ b/pkg/test/resourcefixture/testdata/externalref/externalwithsubresource/_generated_object_externalwithsubresource.golden.yaml @@ -6,7 +6,7 @@ metadata: cnrm.cloud.google.com/mutable-but-unreadable-fields: '{"spec":{"ddl":["CREATE TABLE t1 (t1 INT64 NOT NULL,) PRIMARY KEY(t1)"]}}' cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -16,13 +16,11 @@ metadata: name: spannerdatabase-test namespace: ${uniqueId} spec: - databaseDialect: GOOGLE_STANDARD_SQL ddl: - CREATE TABLE t1 (t1 INT64 NOT NULL,) PRIMARY KEY(t1) instanceRef: external: spannerinstance-${uniqueId} resourceID: spannerdatabase-test - versionRetentionPeriod: 1h status: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/iamexternalonlyref/billingaccountiampolicy/_generated_object_billingaccountiampolicy.golden.yaml b/pkg/test/resourcefixture/testdata/iamexternalonlyref/billingaccountiampolicy/_generated_object_billingaccountiampolicy.golden.yaml index 2d55719a67..b771cecdfb 100644 --- a/pkg/test/resourcefixture/testdata/iamexternalonlyref/billingaccountiampolicy/_generated_object_billingaccountiampolicy.golden.yaml +++ b/pkg/test/resourcefixture/testdata/iamexternalonlyref/billingaccountiampolicy/_generated_object_billingaccountiampolicy.golden.yaml @@ -17,7 +17,7 @@ kind: IAMPolicy metadata: annotations: cnrm.cloud.google.com/deletion-policy: abandon - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/iamexternalonlyref/billingaccountiampolicymember/_generated_object_billingaccountiampolicymember.golden.yaml b/pkg/test/resourcefixture/testdata/iamexternalonlyref/billingaccountiampolicymember/_generated_object_billingaccountiampolicymember.golden.yaml index 9f80cfd988..2f1a78233b 100644 --- a/pkg/test/resourcefixture/testdata/iamexternalonlyref/billingaccountiampolicymember/_generated_object_billingaccountiampolicymember.golden.yaml +++ b/pkg/test/resourcefixture/testdata/iamexternalonlyref/billingaccountiampolicymember/_generated_object_billingaccountiampolicymember.golden.yaml @@ -16,7 +16,7 @@ apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: annotations: - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/iamexternalonlyref/organizationiampolicy/_generated_object_organizationiampolicy.golden.yaml b/pkg/test/resourcefixture/testdata/iamexternalonlyref/organizationiampolicy/_generated_object_organizationiampolicy.golden.yaml index df263ffac5..ddc949d009 100644 --- a/pkg/test/resourcefixture/testdata/iamexternalonlyref/organizationiampolicy/_generated_object_organizationiampolicy.golden.yaml +++ b/pkg/test/resourcefixture/testdata/iamexternalonlyref/organizationiampolicy/_generated_object_organizationiampolicy.golden.yaml @@ -17,7 +17,7 @@ kind: IAMPolicy metadata: annotations: cnrm.cloud.google.com/deletion-policy: abandon - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/iamexternalonlyref/organizationiampolicymember/_generated_object_organizationiampolicymember.golden.yaml b/pkg/test/resourcefixture/testdata/iamexternalonlyref/organizationiampolicymember/_generated_object_organizationiampolicymember.golden.yaml index b3850fda03..c05325f99d 100644 --- a/pkg/test/resourcefixture/testdata/iamexternalonlyref/organizationiampolicymember/_generated_object_organizationiampolicymember.golden.yaml +++ b/pkg/test/resourcefixture/testdata/iamexternalonlyref/organizationiampolicymember/_generated_object_organizationiampolicymember.golden.yaml @@ -16,7 +16,7 @@ apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: annotations: - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/iammemberreferences/serviceaccountref/_generated_object_serviceaccountref.golden.yaml b/pkg/test/resourcefixture/testdata/iammemberreferences/serviceaccountref/_generated_object_serviceaccountref.golden.yaml index 72e358401e..33e85801a6 100644 --- a/pkg/test/resourcefixture/testdata/iammemberreferences/serviceaccountref/_generated_object_serviceaccountref.golden.yaml +++ b/pkg/test/resourcefixture/testdata/iammemberreferences/serviceaccountref/_generated_object_serviceaccountref.golden.yaml @@ -2,7 +2,7 @@ apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: annotations: - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/iammemberreferences/serviceidentityref/_generated_object_serviceidentityref.golden.yaml b/pkg/test/resourcefixture/testdata/iammemberreferences/serviceidentityref/_generated_object_serviceidentityref.golden.yaml index c6506cc3f0..fdedd385f9 100644 --- a/pkg/test/resourcefixture/testdata/iammemberreferences/serviceidentityref/_generated_object_serviceidentityref.golden.yaml +++ b/pkg/test/resourcefixture/testdata/iammemberreferences/serviceidentityref/_generated_object_serviceidentityref.golden.yaml @@ -2,7 +2,7 @@ apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: annotations: - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/iammemberreferences/sqlinstanceref/_generated_object_sqlinstanceref.golden.yaml b/pkg/test/resourcefixture/testdata/iammemberreferences/sqlinstanceref/_generated_object_sqlinstanceref.golden.yaml index 1cbc186da2..4cda840d67 100644 --- a/pkg/test/resourcefixture/testdata/iammemberreferences/sqlinstanceref/_generated_object_sqlinstanceref.golden.yaml +++ b/pkg/test/resourcefixture/testdata/iammemberreferences/sqlinstanceref/_generated_object_sqlinstanceref.golden.yaml @@ -2,7 +2,7 @@ apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: annotations: - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/reconcileintervalannotations/bigquerydataset/_generated_object_bigquerydataset.golden.yaml b/pkg/test/resourcefixture/testdata/reconcileintervalannotations/bigquerydataset/_generated_object_bigquerydataset.golden.yaml index f7edb08c3a..e51bf29cb4 100644 --- a/pkg/test/resourcefixture/testdata/reconcileintervalannotations/bigquerydataset/_generated_object_bigquerydataset.golden.yaml +++ b/pkg/test/resourcefixture/testdata/reconcileintervalannotations/bigquerydataset/_generated_object_bigquerydataset.golden.yaml @@ -1,24 +1,10 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: bigquery.cnrm.cloud.google.com/v1beta1 kind: BigQueryDataset metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/reconcile-interval-in-seconds: "10" - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -28,17 +14,7 @@ metadata: name: bigquerydatasetsample${uniqueId} namespace: ${uniqueId} spec: - access: - - role: OWNER - specialGroup: projectOwners - - role: OWNER - userByEmail: user@google.com - - role: READER - specialGroup: projectReaders - - role: WRITER - specialGroup: projectWriters friendlyName: bigquerydataset-sample-updated - location: US projectRef: external: ${projectId} resourceID: bigquerydatasetsample${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/reconcileintervalannotations/pubsubschema/_generated_object_pubsubschema#01.golden.yaml b/pkg/test/resourcefixture/testdata/reconcileintervalannotations/pubsubschema/_generated_object_pubsubschema#01.golden.yaml index 395c2b1dcd..3539668469 100644 --- a/pkg/test/resourcefixture/testdata/reconcileintervalannotations/pubsubschema/_generated_object_pubsubschema#01.golden.yaml +++ b/pkg/test/resourcefixture/testdata/reconcileintervalannotations/pubsubschema/_generated_object_pubsubschema#01.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/reconcile-interval-in-seconds: "0" - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/reconcileintervalannotations/storagebucket/_generated_object_storagebucket#01.golden.yaml b/pkg/test/resourcefixture/testdata/reconcileintervalannotations/storagebucket/_generated_object_storagebucket#01.golden.yaml index afb60eec51..f10b18caad 100644 --- a/pkg/test/resourcefixture/testdata/reconcileintervalannotations/storagebucket/_generated_object_storagebucket#01.golden.yaml +++ b/pkg/test/resourcefixture/testdata/reconcileintervalannotations/storagebucket/_generated_object_storagebucket#01.golden.yaml @@ -5,7 +5,7 @@ metadata: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} cnrm.cloud.google.com/reconcile-interval-in-seconds: "10" - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/reconcileintervalannotations/storagebucket/_generated_object_storagebucket.golden.yaml b/pkg/test/resourcefixture/testdata/reconcileintervalannotations/storagebucket/_generated_object_storagebucket.golden.yaml index afb60eec51..82128f0790 100644 --- a/pkg/test/resourcefixture/testdata/reconcileintervalannotations/storagebucket/_generated_object_storagebucket.golden.yaml +++ b/pkg/test/resourcefixture/testdata/reconcileintervalannotations/storagebucket/_generated_object_storagebucket.golden.yaml @@ -5,22 +5,19 @@ metadata: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} cnrm.cloud.google.com/reconcile-interval-in-seconds: "10" - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 4 + generation: 3 labels: cnrm-test: "true" name: storagebucket-sample-${uniqueId} namespace: ${uniqueId} spec: + lifecycleRule: [] location: US - publicAccessPrevention: inherited resourceID: storagebucket-sample-${uniqueId} - softDeletePolicy: - retentionDurationSeconds: 604800 - storageClass: STANDARD versioning: enabled: true status: @@ -30,7 +27,7 @@ status: reason: UpToDate status: "True" type: Ready - observedGeneration: 4 + observedGeneration: 3 observedState: softDeletePolicy: effectiveTime: "1970-01-01T00:00:00Z" diff --git a/pkg/test/resourcefixture/testdata/resourceid/referencewithuserspecifiedresourceid/_generated_object_referencewithuserspecifiedresourceid.golden.yaml b/pkg/test/resourcefixture/testdata/resourceid/referencewithuserspecifiedresourceid/_generated_object_referencewithuserspecifiedresourceid.golden.yaml index 8c86e519dc..0f09b7870c 100644 --- a/pkg/test/resourcefixture/testdata/resourceid/referencewithuserspecifiedresourceid/_generated_object_referencewithuserspecifiedresourceid.golden.yaml +++ b/pkg/test/resourcefixture/testdata/resourceid/referencewithuserspecifiedresourceid/_generated_object_referencewithuserspecifiedresourceid.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/resourceid/userspecifiedresourceid/_generated_object_userspecifiedresourceid.golden.yaml b/pkg/test/resourcefixture/testdata/resourceid/userspecifiedresourceid/_generated_object_userspecifiedresourceid.golden.yaml index 4107dad945..78a3f1328d 100644 --- a/pkg/test/resourcefixture/testdata/resourceid/userspecifiedresourceid/_generated_object_userspecifiedresourceid.golden.yaml +++ b/pkg/test/resourcefixture/testdata/resourceid/userspecifiedresourceid/_generated_object_userspecifiedresourceid.golden.yaml @@ -3,27 +3,17 @@ kind: BigQueryDataset metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 3 + generation: 2 labels: cnrm-test: "true" name: bigquerydataset-resourceid-${uniqueId} namespace: ${uniqueId} spec: - access: - - role: OWNER - specialGroup: projectOwners - - role: OWNER - userByEmail: user@google.com - - role: READER - specialGroup: projectReaders - - role: WRITER - specialGroup: projectWriters friendlyName: bigquerydataset-sample-updated - location: US projectRef: external: ${projectId} resourceID: bigquerydataset_${uniqueId} @@ -37,5 +27,5 @@ status: creationTime: "1970-01-01T00:00:00Z" etag: abcdef123456 lastModifiedTime: "1970-01-01T00:00:00Z" - observedGeneration: 3 + observedGeneration: 2 selfLink: https://bigquery.googleapis.com/bigquery/v2/projects/${projectId}/datasets/bigquerydataset_${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/resourceid/userspecifiedresourceidandservergeneratedid/_generated_object_userspecifiedresourceidandservergeneratedid.golden.yaml b/pkg/test/resourcefixture/testdata/resourceid/userspecifiedresourceidandservergeneratedid/_generated_object_userspecifiedresourceidandservergeneratedid.golden.yaml index 81ffc13f5b..dfe9405f99 100644 --- a/pkg/test/resourcefixture/testdata/resourceid/userspecifiedresourceidandservergeneratedid/_generated_object_userspecifiedresourceidandservergeneratedid.golden.yaml +++ b/pkg/test/resourcefixture/testdata/resourceid/userspecifiedresourceidandservergeneratedid/_generated_object_userspecifiedresourceidandservergeneratedid.golden.yaml @@ -3,7 +3,7 @@ kind: Project metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/resourceid/userspecifiedresourceidfordcl/_generated_object_userspecifiedresourceidfordcl.golden.yaml b/pkg/test/resourcefixture/testdata/resourceid/userspecifiedresourceidfordcl/_generated_object_userspecifiedresourceidfordcl.golden.yaml index 201b4aaa56..b434cba59a 100644 --- a/pkg/test/resourcefixture/testdata/resourceid/userspecifiedresourceidfordcl/_generated_object_userspecifiedresourceidfordcl.golden.yaml +++ b/pkg/test/resourcefixture/testdata/resourceid/userspecifiedresourceidfordcl/_generated_object_userspecifiedresourceidfordcl.golden.yaml @@ -4,7 +4,7 @@ metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender diff --git a/pkg/test/resourcefixture/testdata/resourceoverrides/computeinstance/networkipcomputeinstance/_generated_object_networkipcomputeinstance.golden.yaml b/pkg/test/resourcefixture/testdata/resourceoverrides/computeinstance/networkipcomputeinstance/_generated_object_networkipcomputeinstance.golden.yaml index b980db6484..f941d5b78c 100644 --- a/pkg/test/resourcefixture/testdata/resourceoverrides/computeinstance/networkipcomputeinstance/_generated_object_networkipcomputeinstance.golden.yaml +++ b/pkg/test/resourcefixture/testdata/resourceoverrides/computeinstance/networkipcomputeinstance/_generated_object_networkipcomputeinstance.golden.yaml @@ -1,17 +1,3 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: compute.cnrm.cloud.google.com/v1beta1 kind: ComputeInstance metadata: @@ -20,11 +6,11 @@ metadata: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/observed-secret-versions: (removed) cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender - generation: 4 + generation: 2 labels: cnrm-test: "true" created-from: image-2 @@ -33,23 +19,18 @@ metadata: namespace: ${uniqueId} spec: bootDisk: - autoDelete: true initializeParams: sourceImageRef: external: debian-cloud/debian-11 - mode: READ_WRITE canIpForward: true machineType: n1-standard-1 networkInterface: - accessConfig: - networkTier: PREMIUM networkIp: 10.128.0.9 - subnetworkProject: ${projectId} subnetworkRef: name: default resourceID: computeinstance-${uniqueId} - scheduling: - automaticRestart: true zone: us-central1-a status: conditions: @@ -61,5 +42,5 @@ status: currentStatus: RUNNING instanceId: "1111111111111111" labelFingerprint: abcdef0123A= - observedGeneration: 4 + observedGeneration: 2 selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/zones/us-central1-a/instances/computeinstance-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/resourceoverrides/computeinstance/networkipcomputeinstance/_http.log b/pkg/test/resourcefixture/testdata/resourceoverrides/computeinstance/networkipcomputeinstance/_http.log index ab7b4ad260..2b7408f7c7 100644 --- a/pkg/test/resourcefixture/testdata/resourceoverrides/computeinstance/networkipcomputeinstance/_http.log +++ b/pkg/test/resourcefixture/testdata/resourceoverrides/computeinstance/networkipcomputeinstance/_http.log @@ -602,108 +602,6 @@ X-Xss-Protection: 0 --- -POST https://compute.googleapis.com/compute/v1/projects/${projectId}/zones/us-central1-a/instances/computeinstance-${uniqueId}/setLabels?alt=json&prettyPrint=false -Content-Type: application/json -User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager - -{ - "labelFingerprint": "abcdef0123A=", - "labels": { - "cnrm-test": "true", - "created-from": "image-2", - "managed-by-cnrm": "true", - "network-type": "subnetwork-2" - } -} - -200 OK -Cache-Control: private -Content-Type: application/json; charset=UTF-8 -Server: ESF -Vary: Origin -Vary: X-Origin -Vary: Referer -X-Content-Type-Options: nosniff -X-Frame-Options: SAMEORIGIN -X-Xss-Protection: 0 - -{ - "id": "000000000000000000000", - "insertTime": "2024-04-01T12:34:56.123456Z", - "kind": "compute#operation", - "name": "${operationID}", - "progress": 0, - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", - "startTime": "2024-04-01T12:34:56.123456Z", - "status": "DONE" -} - ---- - -GET https://compute.googleapis.com/compute/v1/projects/${projectId}/zones/us-central1-a/instances/computeinstance-${uniqueId}?alt=json&prettyPrint=false -User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager - -200 OK -Cache-Control: private -Content-Type: application/json; charset=UTF-8 -Server: ESF -Vary: Origin -Vary: X-Origin -Vary: Referer -X-Content-Type-Options: nosniff -X-Frame-Options: SAMEORIGIN -X-Xss-Protection: 0 - -{ - "canIpForward": true, - "creationTimestamp": "2024-04-01T12:34:56.123456Z", - "deletionProtection": false, - "disks": [ - { - "autoDelete": true, - "boot": true, - "initializeParams": { - "sourceImage": "projects/debian-cloud/global/images/family/debian-11" - }, - "mode": "READ_WRITE" - } - ], - "id": "000000000000000000000", - "kind": "compute#instance", - "labelFingerprint": "abcdef0123A=", - "labels": { - "cnrm-test": "true", - "created-from": "image-2", - "managed-by-cnrm": "true", - "network-type": "subnetwork-2" - }, - "machineType": "projects/${projectId}/zones/us-central1-a/machineTypes/n1-standard-1", - "metadata": {}, - "name": "computeinstance-${uniqueId}", - "networkInterfaces": [ - { - "accessConfigs": [ - { - "networkTier": "PREMIUM", - "type": "ONE_TO_ONE_NAT" - } - ], - "networkIP": "10.128.0.9", - "subnetwork": "projects/${projectId}/regions/us-central1/subnetworks/${subnetworkID}" - } - ], - "params": {}, - "scheduling": { - "automaticRestart": true - }, - "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/zones/us-central1-a/instances/computeinstance-${uniqueId}", - "status": "RUNNING", - "tags": {}, - "zone": "https://www.googleapis.com/compute/v1/projects/${projectId}/zones/us-central1-a" -} - ---- - DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/zones/us-central1-a/instances/computeinstance-${uniqueId}?alt=json&prettyPrint=false User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager diff --git a/pkg/test/resourcefixture/testdata/sensitivefield/sensitivevaluefromsecret/_generated_object_sensitivevaluefromsecret.golden.yaml b/pkg/test/resourcefixture/testdata/sensitivefield/sensitivevaluefromsecret/_generated_object_sensitivevaluefromsecret.golden.yaml new file mode 100644 index 0000000000..394b418435 --- /dev/null +++ b/pkg/test/resourcefixture/testdata/sensitivefield/sensitivevaluefromsecret/_generated_object_sensitivevaluefromsecret.golden.yaml @@ -0,0 +1,40 @@ +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeSSLCertificate +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/observed-secret-versions: (removed) + cnrm.cloud.google.com/project-id: ${projectId} + cnrm.cloud.google.com/state-into-spec: absent + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 2 + labels: + cnrm-test: "true" + name: computesslcertificate-${uniqueId} + namespace: ${uniqueId} +spec: + certificate: + valueFrom: + secretKeyRef: + key: certificate + name: secret-${uniqueId} + location: global + privateKey: + valueFrom: + secretKeyRef: + key: privateKey + name: secret-${uniqueId} + resourceID: computesslcertificate-${uniqueId} +status: + certificateId: 1111111111111111 + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + creationTimestamp: "1970-01-01T00:00:00Z" + observedGeneration: 2 + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/sensitivefield/sensitivevaluefromsecret/_http.log b/pkg/test/resourcefixture/testdata/sensitivefield/sensitivevaluefromsecret/_http.log new file mode 100644 index 0000000000..853dcb236b --- /dev/null +++ b/pkg/test/resourcefixture/testdata/sensitivefield/sensitivevaluefromsecret/_http.log @@ -0,0 +1,189 @@ +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "sslCertificate \"projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "sslCertificate \"projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "kind": "compute#sslCertificate", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} \ No newline at end of file diff --git a/pkg/test/resourcefixture/testdata/sensitivefield/sensitivevaluesimple/_generated_object_sensitivevaluesimple.golden.yaml b/pkg/test/resourcefixture/testdata/sensitivefield/sensitivevaluesimple/_generated_object_sensitivevaluesimple.golden.yaml new file mode 100644 index 0000000000..4e5c2c822a --- /dev/null +++ b/pkg/test/resourcefixture/testdata/sensitivefield/sensitivevaluesimple/_generated_object_sensitivevaluesimple.golden.yaml @@ -0,0 +1,80 @@ +apiVersion: compute.cnrm.cloud.google.com/v1beta1 +kind: ComputeSSLCertificate +metadata: + annotations: + cnrm.cloud.google.com/management-conflict-prevention-policy: none + cnrm.cloud.google.com/observed-secret-versions: (removed) + cnrm.cloud.google.com/project-id: ${projectId} + cnrm.cloud.google.com/state-into-spec: absent + finalizers: + - cnrm.cloud.google.com/finalizer + - cnrm.cloud.google.com/deletion-defender + generation: 2 + labels: + cnrm-test: "true" + name: computesslcertificate-${uniqueId} + namespace: ${uniqueId} +spec: + certificate: + value: | + -----BEGIN CERTIFICATE----- + MIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x + CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk + Z2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX + DTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD + VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw + ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV + corkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9 + uUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe + 601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a + 7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE + Fxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud + AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh + jqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1 + Z+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS + JD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k + O4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3 + 95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE= + -----END CERTIFICATE----- + location: global + privateKey: + value: | + -----BEGIN RSA PRIVATE KEY----- + MIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7 + O5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo + 6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7 + vM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD + MY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ + YGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay + 64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY + bOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK + h84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm + fbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr + t+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ + cR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE + mL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy + e2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk + KWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW + ILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA + SGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx + McwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2 + BR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+ + fPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9 + 6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+ + 7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4 + R3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob + hCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+ + VtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo= + -----END RSA PRIVATE KEY----- + resourceID: computesslcertificate-${uniqueId} +status: + certificateId: 1111111111111111 + conditions: + - lastTransitionTime: "1970-01-01T00:00:00Z" + message: The resource is up to date + reason: UpToDate + status: "True" + type: Ready + creationTimestamp: "1970-01-01T00:00:00Z" + observedGeneration: 2 + selfLink: https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId} diff --git a/pkg/test/resourcefixture/testdata/sensitivefield/sensitivevaluesimple/_http.log b/pkg/test/resourcefixture/testdata/sensitivefield/sensitivevaluesimple/_http.log new file mode 100644 index 0000000000..853dcb236b --- /dev/null +++ b/pkg/test/resourcefixture/testdata/sensitivefield/sensitivevaluesimple/_http.log @@ -0,0 +1,189 @@ +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +404 Not Found +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "error": { + "code": 404, + "errors": [ + { + "domain": "global", + "message": "sslCertificate \"projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}\" not found", + "reason": "notFound" + } + ], + "message": "sslCertificate \"projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}\" not found" + } +} + +--- + +POST https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n" +} + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "insert", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDJTCCAg0CFHdD3ZGYMCmF3O4PvMwsP5i8d/V0MA0GCSqGSIb3DQEBCwUAME8x\nCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJXQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk\nZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdFeGFtcGxlMB4XDTE5MDkyOTIyMjgyOVoX\nDTIwMDkyODIyMjgyOVowTzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAldBMSEwHwYD\nVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMMB0V4YW1wbGUw\nggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDWLvOZIail12i6NXIqOspV\ncorkuS1Nl0ayrl0VuKHCvheun/s7lLLgEfifzRueYlSUtdGg4atWIwEKsbIE+AF9\nuUTzkq/t6zHxFAAWgVZ6/hW696jqcZX3yU+LCuHPLSN0ruqD6ZygnYDVciDmYwxe\n601xNfOOYRlm6dGRx6uTxGDZtfu8zsaNI0UxTugTp2x5cKB66SbgdlIJvc2Hb54a\n7qOsb9CIf+rrK2xUdJUj4ueUEIMxjnY2u/Dc71SgfBVn+yFfN9MHNdcTWPXEUClE\nFxd/MB3dGn7hVavXyvy3NT4tWhBgYBphfEUudDFej5MmVq56JOEQ2UtaQ+Imscud\nAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMYTQyjVlo6TCYoyK6akjPX7vRiwCCAh\njqsEu3bZqwUreOhZgRAyEXrq68dtXwTbwdisQmnhpBeBQuX4WWeas9TiycZ13TA1\nZ+h518D9OVXjrNs7oE3QNFeTom807IW16YydlrZMLKO8mQg6/BXfSHbLwuQHSIYS\nJD+uOfnkr08ORBbLGgBKKpy7ngflIkdSrQPmCYmYlvoy+goMAEVi0K3Y1wVzAF4k\nO4v8f7GXkNarsFT1QM82JboVV5uwX+uDmi858WKDHYGv2Ypv6yy93vdV0Xt/IBj3\n95/RDisBzcL7Ynpl34AAr5MLm7yCSsPrAmgevX4BOtcVc4rSXj5rcoE=\n-----END CERTIFICATE-----\n", + "creationTimestamp": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "kind": "compute#sslCertificate", + "name": "computesslcertificate-${uniqueId}", + "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA1i7zmSGopddoujVyKjrKVXKK5LktTZdGsq5dFbihwr4Xrp/7\nO5Sy4BH4n80bnmJUlLXRoOGrViMBCrGyBPgBfblE85Kv7esx8RQAFoFWev4Vuveo\n6nGV98lPiwrhzy0jdK7qg+mcoJ2A1XIg5mMMXutNcTXzjmEZZunRkcerk8Rg2bX7\nvM7GjSNFMU7oE6dseXCgeukm4HZSCb3Nh2+eGu6jrG/QiH/q6ytsVHSVI+LnlBCD\nMY52Nrvw3O9UoHwVZ/shXzfTBzXXE1j1xFApRBcXfzAd3Rp+4VWr18r8tzU+LVoQ\nYGAaYXxFLnQxXo+TJlaueiThENlLWkPiJrHLnQIDAQABAoIBAQDMo/WZlQBG3Cay\n64fV83AI7jTozkkLvoMNC+3iaBMeN3P3I+HuDmhOEL2lKVq/HKJFp+bPuW50EWPY\nbOlzN+Zs0kygEMJJJxQDjCF9XzxarVPj3OcmgTpRkqWOaupPgYhD3zAws080YuiK\nh84Jcg+KzXWjunGn0vxrSPI0QDueJR2i03tEDBAtMZ0pvAsJ0gmXRdzGOc2uRzDm\nfbS3y/JIufClO28OzjJ5AJkbc9XgRDeCDOFY2D375bCg2boPYmP7Iw0HVU3RQhcr\nt+US27VQBRJF4cQ2CCyr0ZbdaPn41v+/A/qxF6ZPguyy+KoyQjCqK8iFArRQ48hJ\ncR2pFx4hAoGBAP2uXIJAdAemrOunv2CWlUHI2iHj/kJ1AXRMpiT+eF0US9E6tipE\nmL63HkUhiAs2nJnPi3RDxP+kAO2Z3anqjm1KCeGj+IYYZMavnkC8EVybv9lDwORy\ne2O1bfRc/tGa341KmvXLbp8oVMIYIvKz2cZmHGJ4V4DTq8dTvmqoE4/VAoGBANgk\nKWY5MJToZJJ5bV0mc2stmGt/IAZZPlKjVmKOjDyzqHRLAhsmbMyUhhgZtyj0dzSW\nILEeaEJknYRrOB48D6IqkB8VnFJyHUG8l+Za41adqRQNid0S5n50/+eYbjZpYCrA\nSGmC2dhPZvRD6tOyEEJF5PZMvqxDcNRilc627HipAoGBAKzqrSQbyvtsIXKAZXLx\nMcwlnIp9XlLubo9Xr+iHjIPl0chMvN8S4wscxwVYVeNO1nABiI03pJCcugU7XFz2\nBR952EJ2AnFlL0w/aR+3Eh6OC7eM927Amlrc0JZAzXESoE8vC3F/uWfDlgK3cRr+\nfPM/pxl37i1iGzVDYAhTiQIBAoGAPW25nmXumsOZoc+E945wCywAP7z3mxZOEip9\n6LDexnnBDJws0w6OqW4k1kCov6kLIBTy4aPkucniwrm+T0l+n/Y807jOntfz3LT+\n7ucx6XIRlbNrVTuD6rjR6j52RFyaikvvyJz50PJwLkgHO3dGC6/VrPKO1mKsdJA4\nR3HRr1ECgYEAobNQbQSLrSWZ1cozJbmNgRqqvxDNSEDi8LpXukOAw4pz1km7o3ob\nhCy1ksfFzsp5glYqwZd/Bahk64u3mII+rKoYwYLrH2l2aFDmMbdTfQUycpQZyi3+\nVtGS1PFoKx9fSFDNHhR5ZhfasQcuKHYfeFfO2/DoOxQkNCI1y4I2huo=\n-----END RSA PRIVATE KEY-----\n", + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}" +} + +--- + +DELETE https://compute.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}?alt=json +Content-Type: application/json +User-Agent: Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 0, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "RUNNING", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} + +--- + +GET https://compute.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}?alt=json&prettyPrint=false +User-Agent: google-api-go-client/0.5 Terraform/ (+https://www.terraform.io) Terraform-Plugin-SDK/2.10.1 terraform-provider-google-beta/kcc/controller-manager + +200 OK +Cache-Control: private +Content-Type: application/json; charset=UTF-8 +Server: ESF +Vary: Origin +Vary: X-Origin +Vary: Referer +X-Content-Type-Options: nosniff +X-Frame-Options: SAMEORIGIN +X-Xss-Protection: 0 + +{ + "endTime": "2024-04-01T12:34:56.123456Z", + "id": "000000000000000000000", + "insertTime": "2024-04-01T12:34:56.123456Z", + "kind": "compute#operation", + "name": "${operationID}", + "operationType": "delete", + "progress": 100, + "selfLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/operations/${operationID}", + "startTime": "2024-04-01T12:34:56.123456Z", + "status": "DONE", + "targetId": "${sslCertificatesId}", + "targetLink": "https://www.googleapis.com/compute/v1/projects/${projectId}/global/sslCertificates/computesslcertificate-${uniqueId}", + "user": "user@example.com" +} \ No newline at end of file diff --git a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/bigquery/bigquerydataset.md b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/bigquery/bigquerydataset.md index dd4e9dd7e8..db574cce9c 100644 --- a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/bigquery/bigquerydataset.md +++ b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/bigquery/bigquerydataset.md @@ -128,7 +128,6 @@ location: string maxTimeTravelHours: string projectRef: external: string - kind: string name: string namespace: string resourceID: string @@ -169,7 +168,7 @@ storageBillingModel: string

object

-

{% verbatim %}[Pick one] A grant authorizing all resources of a particular type in a particular dataset access to this dataset. Only views are supported for now. The role field is not required when this field is set. If that dataset is deleted and re-created, its access needs to be granted again via an update operation.{% endverbatim %}

+

{% verbatim %}Grants all resources of particular types in a particular dataset read access to the current dataset.{% endverbatim %}

@@ -189,7 +188,7 @@ storageBillingModel: string

string

-

{% verbatim %}Required. A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.{% endverbatim %}

+

{% verbatim %}The ID of the dataset containing this table.{% endverbatim %}

@@ -199,7 +198,7 @@ storageBillingModel: string

string

-

{% verbatim %}Required. The ID of the project containing this dataset.{% endverbatim %}

+

{% verbatim %}The ID of the project containing this table.{% endverbatim %}

@@ -209,7 +208,8 @@ storageBillingModel: string

list (string)

-

{% verbatim %}Which resources in the dataset this entry applies to. Currently, only views are supported, but additional target types may be added in the future.{% endverbatim %}

+

{% verbatim %}Which resources in the dataset this entry applies to. Currently, only views are supported, +but additional target types may be added in the future. Possible values: VIEWS.{% endverbatim %}

@@ -229,7 +229,8 @@ storageBillingModel: string

string

-

{% verbatim %}[Pick one] A domain to grant access to. Any users signed in with the domain specified will be granted the specified access. Example: "example.com". Maps to IAM policy member "domain:DOMAIN".{% endverbatim %}

+

{% verbatim %}A domain to grant access to. Any users signed in with the +domain specified will be granted the specified access.{% endverbatim %}

@@ -239,7 +240,7 @@ storageBillingModel: string

string

-

{% verbatim %}[Pick one] An email address of a Google Group to grant access to. Maps to IAM policy member "group:GROUP".{% endverbatim %}

+

{% verbatim %}An email address of a Google Group to grant access to.{% endverbatim %}

@@ -249,7 +250,8 @@ storageBillingModel: string

string

-

{% verbatim %}[Pick one] Some other type of member that appears in the IAM Policy but isn't a user, group, domain, or special group.{% endverbatim %}

+

{% verbatim %}Some other type of member that appears in the IAM Policy but isn't a user, +group, domain, or special group. For example: 'allUsers'.{% endverbatim %}

@@ -259,17 +261,11 @@ storageBillingModel: string

string

-

{% verbatim %}An IAM role ID that should be granted to the user, group, - or domain specified in this access entry. - The following legacy mappings will be applied: - - * `OWNER`: `roles/bigquery.dataOwner` - * `WRITER`: `roles/bigquery.dataEditor` - * `READER`: `roles/bigquery.dataViewer` - - This field will accept any of the above formats, but will return only - the legacy format. For example, if you set this field to - "roles/bigquery.dataOwner", it will be returned back as "OWNER".{% endverbatim %}

+

{% verbatim %}Describes the rights granted to the user specified by the other +member of the access object. Basic, predefined, and custom roles +are supported. Predefined roles that have equivalent basic roles +are swapped by the API to their basic counterparts. See +[official docs](https://cloud.google.com/bigquery/docs/access-control).{% endverbatim %}

@@ -279,7 +275,11 @@ storageBillingModel: string

object

-

{% verbatim %}[Pick one] A routine from a different dataset to grant access to. Queries executed against that routine will have read access to views/tables/routines in this dataset. Only UDF is supported for now. The role field is not required when this field is set. If that routine is updated by any user, access to the routine needs to be granted again via an update operation.{% endverbatim %}

+

{% verbatim %}A routine from a different dataset to grant access to. Queries +executed against that routine will have read access to tables in +this dataset. The role field is not required when this field is +set. If that routine is updated by any user, access to the routine +needs to be granted again via an update operation.{% endverbatim %}

@@ -289,7 +289,7 @@ storageBillingModel: string

string

-

{% verbatim %}Required. The ID of the dataset containing this routine.{% endverbatim %}

+

{% verbatim %}The ID of the dataset containing this table.{% endverbatim %}

@@ -299,7 +299,7 @@ storageBillingModel: string

string

-

{% verbatim %}Required. The ID of the project containing this routine.{% endverbatim %}

+

{% verbatim %}The ID of the project containing this table.{% endverbatim %}

@@ -309,7 +309,9 @@ storageBillingModel: string

string

-

{% verbatim %}Required. The ID of the routine. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 256 characters.{% endverbatim %}

+

{% verbatim %}The ID of the routine. The ID must contain only letters (a-z, +A-Z), numbers (0-9), or underscores (_). The maximum length +is 256 characters.{% endverbatim %}

@@ -319,14 +321,19 @@ storageBillingModel: string

string

-

{% verbatim %}[Pick one] A special group to grant access to. Possible values include: +

{% verbatim %}A special group to grant access to. Possible values include: + + +* 'projectOwners': Owners of the enclosing project. + + +* 'projectReaders': Readers of the enclosing project. + - * projectOwners: Owners of the enclosing project. - * projectReaders: Readers of the enclosing project. - * projectWriters: Writers of the enclosing project. - * allAuthenticatedUsers: All authenticated BigQuery users. +* 'projectWriters': Writers of the enclosing project. - Maps to similarly-named IAM members.{% endverbatim %}

+ +* 'allAuthenticatedUsers': All authenticated BigQuery users.{% endverbatim %}

@@ -336,7 +343,8 @@ storageBillingModel: string

string

-

{% verbatim %}[Pick one] An email address of a user to grant access to. For example: fred@example.com. Maps to IAM policy member "user:EMAIL" or "serviceAccount:EMAIL".{% endverbatim %}

+

{% verbatim %}An email address of a user to grant access to. For example: +fred@example.com.{% endverbatim %}

@@ -346,7 +354,11 @@ storageBillingModel: string

object

-

{% verbatim %}[Pick one] A view from a different dataset to grant access to. Queries executed against that view will have read access to views/tables/routines in this dataset. The role field is not required when this field is set. If that view is updated by any user, access to the view needs to be granted again via an update operation.{% endverbatim %}

+

{% verbatim %}A view from a different dataset to grant access to. Queries +executed against that view will have read access to tables in +this dataset. The role field is not required when this field is +set. If that view is updated by any user, access to the view +needs to be granted again via an update operation.{% endverbatim %}

@@ -356,7 +368,7 @@ storageBillingModel: string

string

-

{% verbatim %}Required. The ID of the dataset containing this table.{% endverbatim %}

+

{% verbatim %}The ID of the dataset containing this table.{% endverbatim %}

@@ -366,7 +378,7 @@ storageBillingModel: string

string

-

{% verbatim %}Required. The ID of the project containing this table.{% endverbatim %}

+

{% verbatim %}The ID of the project containing this table.{% endverbatim %}

@@ -376,7 +388,9 @@ storageBillingModel: string

string

-

{% verbatim %}Required. The ID of the table. The ID can contain Unicode characters in category L (letter), M (mark), N (number), Pc (connector, including underscore), Pd (dash), and Zs (space). For more information, see [General Category](https://wikipedia.org/wiki/Unicode_character_property#General_Category). The maximum length is 1,024 characters. Certain operations allow suffixing of the table ID with a partition decorator, such as `sample_table$20190123`.{% endverbatim %}

+

{% verbatim %}The ID of the table. The ID must contain only letters (a-z, +A-Z), numbers (0-9), or underscores (_). The maximum length +is 1,024 characters.{% endverbatim %}

@@ -386,16 +400,16 @@ storageBillingModel: string

string

-

{% verbatim %}Optional. Defines the default collation specification of future tables - created in the dataset. If a table is created in this dataset without - table-level default collation, then the table inherits the dataset default - collation, which is applied to the string fields that do not have explicit - collation specified. A change to this field affects only tables created - afterwards, and does not alter the existing tables. - The following values are supported: +

{% verbatim %}Defines the default collation specification of future tables created +in the dataset. If a table is created in this dataset without table-level +default collation, then the table inherits the dataset default collation, +which is applied to the string fields that do not have explicit collation +specified. A change to this field affects only tables created afterwards, +and does not alter the existing tables. - * 'und:ci': undetermined locale, case insensitive. - * '': empty string. Default to case-sensitive behavior.{% endverbatim %}

+The following values are supported: +- 'und:ci': undetermined locale, case insensitive. +- '': empty string. Default to case-sensitive behavior.{% endverbatim %}

@@ -405,17 +419,21 @@ storageBillingModel: string

object

-

{% verbatim %}The default encryption key for all tables in the dataset. After this property is set, the encryption key of all newly-created tables in the dataset is set to this value unless the table creation request or query explicitly overrides the key.{% endverbatim %}

+

{% verbatim %}The default encryption key for all tables in the dataset. Once this property is set, +all newly-created partitioned tables in the dataset will have encryption key set to +this value, unless table creation request (or query) overrides the key.{% endverbatim %}

defaultEncryptionConfiguration.kmsKeyRef

-

Optional

+

Required*

object

-

{% verbatim %}Optional. Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key.{% endverbatim %}

+

{% verbatim %}Describes the Cloud KMS encryption key that will be used to protect destination +BigQuery table. The BigQuery Service Account associated with your project requires +access to this encryption key.{% endverbatim %}

@@ -425,7 +443,7 @@ storageBillingModel: string

string

-

{% verbatim %}A reference to an externally managed KMSCryptoKey. Should be in the format `projects/[kms_project_id]/locations/[region]/keyRings/[key_ring_id]/cryptoKeys/[key]`.{% endverbatim %}

+

{% verbatim %}Allowed value: The `selfLink` field of a `KMSCryptoKey` resource.{% endverbatim %}

@@ -435,7 +453,7 @@ storageBillingModel: string

string

-

{% verbatim %}The `name` of a `KMSCryptoKey` resource.{% endverbatim %}

+

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

@@ -445,7 +463,7 @@ storageBillingModel: string

string

-

{% verbatim %}The `namespace` of a `KMSCryptoKey` resource.{% endverbatim %}

+

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

@@ -455,17 +473,21 @@ storageBillingModel: string

integer

-

{% verbatim %}This default partition expiration, expressed in milliseconds. +

{% verbatim %}The default partition expiration for all partitioned tables in +the dataset, in milliseconds. - When new time-partitioned tables are created in a dataset where this - property is set, the table will inherit this value, propagated as the - `TimePartitioning.expirationMs` property on the new table. If you set - `TimePartitioning.expirationMs` explicitly when creating a table, - the `defaultPartitionExpirationMs` of the containing dataset is ignored. - When creating a partitioned table, if `defaultPartitionExpirationMs` - is set, the `defaultTableExpirationMs` value is ignored and the table - will not be inherit a table expiration deadline.{% endverbatim %}

+Once this property is set, all newly-created partitioned tables in +the dataset will have an 'expirationMs' property in the 'timePartitioning' +settings set to this value, and changing the value will only +affect new tables, not existing ones. The storage in a partition will +have an expiration time of its partition time plus this value. +Setting this property overrides the use of 'defaultTableExpirationMs' +for partitioned tables: only one of 'defaultTableExpirationMs' and +'defaultPartitionExpirationMs' will be used for any new partitioned +table. If you provide an explicit 'timePartitioning.expirationMs' when +creating or updating a partitioned table, that value takes precedence +over the default partition expiration time indicated by this property.{% endverbatim %}

@@ -475,7 +497,19 @@ storageBillingModel: string

integer

-

{% verbatim %}Optional. The default lifetime of all tables in the dataset, in milliseconds. The minimum lifetime value is 3600000 milliseconds (one hour). To clear an existing default expiration with a PATCH request, set to 0. Once this property is set, all newly-created tables in the dataset will have an expirationTime property set to the creation time plus the value in this property, and changing the value will only affect new tables, not existing ones. When the expirationTime for a given table is reached, that table will be deleted automatically. If a table's expirationTime is modified or removed before the table expires, or if you provide an explicit expirationTime when creating a table, that value takes precedence over the default expiration time indicated by this property.{% endverbatim %}

+

{% verbatim %}The default lifetime of all tables in the dataset, in milliseconds. +The minimum value is 3600000 milliseconds (one hour). + + +Once this property is set, all newly-created tables in the dataset +will have an 'expirationTime' property set to the creation time plus +the value in this property, and changing the value will only affect +new tables, not existing ones. When the 'expirationTime' for a given +table is reached, that table will be deleted automatically. +If a table's 'expirationTime' is modified or removed before the +table expires, or if you provide an explicit 'expirationTime' when +creating a table, that value takes precedence over the default +expiration time indicated by this property.{% endverbatim %}

@@ -485,7 +519,7 @@ storageBillingModel: string

string

-

{% verbatim %}Optional. A user-friendly description of the dataset.{% endverbatim %}

+

{% verbatim %}A user-friendly description of the dataset.{% endverbatim %}

@@ -495,7 +529,7 @@ storageBillingModel: string

string

-

{% verbatim %}Optional. A descriptive name for the dataset.{% endverbatim %}

+

{% verbatim %}A descriptive name for the dataset.{% endverbatim %}

@@ -505,7 +539,9 @@ storageBillingModel: string

boolean

-

{% verbatim %}Optional. TRUE if the dataset and its table names are case-insensitive, otherwise FALSE. By default, this is FALSE, which means the dataset and its table names are case-sensitive. This field does not affect routine references.{% endverbatim %}

+

{% verbatim %}TRUE if the dataset and its table names are case-insensitive, otherwise FALSE. +By default, this is FALSE, which means the dataset and its table names are +case-sensitive. This field does not affect routine references.{% endverbatim %}

@@ -515,7 +551,18 @@ storageBillingModel: string

string

-

{% verbatim %}The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.{% endverbatim %}

+

{% verbatim %}Immutable. The geographic location where the dataset should reside. +See [official docs](https://cloud.google.com/bigquery/docs/dataset-locations). + + +There are two types of locations, regional or multi-regional. A regional +location is a specific geographic place, such as Tokyo, and a multi-regional +location is a large geographic area, such as the United States, that +contains at least two geographic places. + + +The default value is multi-regional location 'US'. +Changing this forces a new resource to be created.{% endverbatim %}

@@ -525,7 +572,7 @@ storageBillingModel: string

string

-

{% verbatim %}Optional. Defines the time travel window in hours. The value can be from 48 to 168 hours (2 to 7 days). The default value is 168 hours if this is not set.{% endverbatim %}

+

{% verbatim %}Defines the time travel window in hours. The value can be from 48 to 168 hours (2 to 7 days).{% endverbatim %}

@@ -535,7 +582,7 @@ storageBillingModel: string

object

-

{% verbatim %}The project that this resource belongs to. optional.{% endverbatim %}

+

{% verbatim %}The project that this resource belongs to.{% endverbatim %}

@@ -545,17 +592,7 @@ storageBillingModel: string

string

-

{% verbatim %}The `projectID` field of a project, when not managed by KCC.{% endverbatim %}

- - - - -

projectRef.kind

-

Optional

- - -

string

-

{% verbatim %}The kind of the Project resource; optional but must be `Project` if provided.{% endverbatim %}

+

{% verbatim %}Allowed value: The `name` field of a `Project` resource.{% endverbatim %}

@@ -565,7 +602,7 @@ storageBillingModel: string

string

-

{% verbatim %}The `name` field of a `Project` resource.{% endverbatim %}

+

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

@@ -575,7 +612,7 @@ storageBillingModel: string

string

-

{% verbatim %}The `namespace` field of a `Project` resource.{% endverbatim %}

+

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

@@ -585,7 +622,7 @@ storageBillingModel: string

string

-

{% verbatim %}The BigQueryDataset name. If not given, the metadata.name will be used.{% endverbatim %}

+

{% verbatim %}Immutable. Optional. The datasetId of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.{% endverbatim %}

@@ -595,7 +632,11 @@ storageBillingModel: string

string

-

{% verbatim %}Optional. Updates storage_billing_model for the dataset.{% endverbatim %}

+

{% verbatim %}Specifies the storage billing model for the dataset. +Set this flag value to LOGICAL to use logical bytes for storage billing, +or to PHYSICAL to use physical bytes instead. + +LOGICAL is the default if this flag isn't specified.{% endverbatim %}

@@ -632,7 +673,7 @@ selfLink: string conditions

list (object)

-

{% verbatim %}Conditions represent the latest available observations of the object's current state.{% endverbatim %}

+

{% verbatim %}Conditions represent the latest available observation of the resource's current state.{% endverbatim %}

@@ -681,21 +722,23 @@ selfLink: string creationTime

integer

-

{% verbatim %}Output only. The time when this dataset was created, in milliseconds since the epoch.{% endverbatim %}

+

{% verbatim %}The time when this dataset was created, in milliseconds since the +epoch.{% endverbatim %}

etag

string

-

{% verbatim %}Output only. A hash of the resource.{% endverbatim %}

+

{% verbatim %}A hash of the resource.{% endverbatim %}

lastModifiedTime

integer

-

{% verbatim %}Output only. The date when this dataset was last modified, in milliseconds since the epoch.{% endverbatim %}

+

{% verbatim %}The date when this dataset or any of its tables was last modified, in +milliseconds since the epoch.{% endverbatim %}

@@ -709,7 +752,7 @@ selfLink: string selfLink

string

-

{% verbatim %}Output only. A URL that can be used to access the resource again. You can use this URL in Get or Update requests to the resource.{% endverbatim %}

+

{% verbatim %}{% endverbatim %}

diff --git a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/certificatemanager/certificatemanagerdnsauthorization.md b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/certificatemanager/certificatemanagerdnsauthorization.md index 1057e53ab9..fc0f004c27 100644 --- a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/certificatemanager/certificatemanagerdnsauthorization.md +++ b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/certificatemanager/certificatemanagerdnsauthorization.md @@ -67,6 +67,7 @@ description: string domain: string projectRef: external: string + kind: string name: string namespace: string resourceID: string @@ -96,9 +97,7 @@ resourceID: string

string

-

{% verbatim %}Immutable. A domain which is being authorized. A DnsAuthorization resource covers a -single domain and its wildcard, e.g. authorization for "example.com" can -be used to issue certificates for "example.com" and "*.example.com".{% endverbatim %}

+

{% verbatim %}Immutable. A domain which is being authorized. A DnsAuthorization resource covers a single domain and its wildcard, e.g. authorization for "example.com" can be used to issue certificates for "example.com" and "*.example.com".{% endverbatim %}

@@ -118,7 +117,17 @@ be used to issue certificates for "example.com" and "*.example.com".{% endverbat

string

-

{% verbatim %}Allowed value: The `name` field of a `Project` resource.{% endverbatim %}

+

{% verbatim %}The `projectID` field of a project, when not managed by Config Connector.{% endverbatim %}

+ + + + +

projectRef.kind

+

Optional

+ + +

string

+

{% verbatim %}The kind of the Project resource; optional but must be `Project` if provided.{% endverbatim %}

@@ -128,7 +137,7 @@ be used to issue certificates for "example.com" and "*.example.com".{% endverbat

string

-

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

+

{% verbatim %}The `name` field of a `Project` resource.{% endverbatim %}

@@ -138,7 +147,7 @@ be used to issue certificates for "example.com" and "*.example.com".{% endverbat

string

-

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

+

{% verbatim %}The `namespace` field of a `Project` resource.{% endverbatim %}

@@ -183,7 +192,7 @@ observedGeneration: integer conditions

list (object)

-

{% verbatim %}Conditions represent the latest available observation of the resource's current state.{% endverbatim %}

+

{% verbatim %}Conditions represent the latest available observations of the CertificateManagerDNSAuthorization's current state.{% endverbatim %}

@@ -232,9 +241,7 @@ observedGeneration: integer dnsResourceRecord

list (object)

-

{% verbatim %}The structure describing the DNS Resource Record that needs to be added -to DNS configuration for the authorization to be usable by -certificate.{% endverbatim %}

+

{% verbatim %}The structure describing the DNS Resource Record that needs to be added to DNS configuration for the authorization to be usable by certificate.{% endverbatim %}

@@ -255,8 +262,7 @@ certificate.{% endverbatim %}

dnsResourceRecord[].name

string

-

{% verbatim %}Fully qualified name of the DNS Resource Record. -E.g. '_acme-challenge.example.com'.{% endverbatim %}

+

{% verbatim %}Fully qualified name of the DNS Resource Record. E.g. '_acme-challenge.example.com'.{% endverbatim %}

diff --git a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/cloudbuild/cloudbuildworkerpool.md b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/cloudbuild/cloudbuildworkerpool.md index 549f356b89..1601c057db 100644 --- a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/cloudbuild/cloudbuildworkerpool.md +++ b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/cloudbuild/cloudbuildworkerpool.md @@ -238,7 +238,7 @@ resourceID: string

string

-

{% verbatim %}The `projectID` field of a project, when not managed by KCC.{% endverbatim %}

+

{% verbatim %}The `projectID` field of a project, when not managed by Config Connector.{% endverbatim %}

diff --git a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/compute/computeforwardingrule.md b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/compute/computeforwardingrule.md index 0bade0cfd7..55d421e69b 100644 --- a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/compute/computeforwardingrule.md +++ b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/compute/computeforwardingrule.md @@ -227,8 +227,7 @@ internal load balancer.{% endverbatim %}

object

-

{% verbatim %}A ComputeBackendService to receive the matched traffic. This is -used only for internal load balancing.{% endverbatim %}

+

{% verbatim %}A ComputeBackendService to receive the matched traffic. This is used only for internal load balancing.{% endverbatim %}

@@ -238,7 +237,7 @@ used only for internal load balancing.{% endverbatim %}

string

-

{% verbatim %}Allowed value: The `selfLink` field of a `ComputeBackendService` resource.{% endverbatim %}

+

{% verbatim %}The ComputeBackendService selflink in the form "projects/{{project}}/global/backendServices/{{name}}" or "projects/{{project}}/regions/{{region}}/backendServices/{{name}}" when not managed by Config Connector.{% endverbatim %}

@@ -248,7 +247,7 @@ used only for internal load balancing.{% endverbatim %}

string

-

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

+

{% verbatim %}The `name` field of a `ComputeBackendService` resource.{% endverbatim %}

@@ -258,7 +257,7 @@ used only for internal load balancing.{% endverbatim %}

string

-

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

+

{% verbatim %}The `namespace` field of a `ComputeBackendService` resource.{% endverbatim %}

@@ -268,8 +267,7 @@ used only for internal load balancing.{% endverbatim %}

string

-

{% verbatim %}Immutable. An optional description of this resource. Provide this property when -you create the resource.{% endverbatim %}

+

{% verbatim %}Immutable. An optional description of this resource. Provide this property when you create the resource.{% endverbatim %}

@@ -317,7 +315,7 @@ range of the subnet or network configured for this forwarding rule.{% endverbati

string

-

{% verbatim %}Allowed value: The `address` field of a `ComputeAddress` resource.{% endverbatim %}

+

{% verbatim %}The ComputeAddress selflink in the form "projects/{{project}}/regions/{{region}}/addresses/{{name}}" when not managed by Config Connector.{% endverbatim %}

@@ -327,7 +325,7 @@ range of the subnet or network configured for this forwarding rule.{% endverbati

string

-

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

+

{% verbatim %}The `name` field of a `ComputeAddress` resource.{% endverbatim %}

@@ -337,7 +335,7 @@ range of the subnet or network configured for this forwarding rule.{% endverbati

string

-

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

+

{% verbatim %}The `namespace` field of a `ComputeAddress` resource.{% endverbatim %}

@@ -418,7 +416,7 @@ Must set to empty for private service connect forwarding rule. For more informat

location

-

Required

+

Required*

string

@@ -491,8 +489,7 @@ This list must not be empty and can have at the most 64 entries.{% endverbatim %

string

-

{% verbatim %}Immutable. Name of the metadata label. The length must be between -1 and 1024 characters, inclusive.{% endverbatim %}

+

{% verbatim %}Immutable. Name of the metadata label. The length must be between 1 and 1024 characters, inclusive.{% endverbatim %}

@@ -502,8 +499,7 @@ This list must not be empty and can have at the most 64 entries.{% endverbatim %

string

-

{% verbatim %}Immutable. The value that the label must match. The value has a maximum -length of 1024 characters.{% endverbatim %}

+

{% verbatim %}Immutable. The value that the label must match. The value has a maximum length of 1024 characters.{% endverbatim %}

@@ -529,10 +525,7 @@ provided metadata. Possible values: ["MATCH_ANY", "MATCH_ALL"].{% endverbatim %}

object

-

{% verbatim %}This field is not used for external load balancing. For internal -load balancing, this field identifies the network that the load -balanced IP should belong to for this forwarding rule. If this -field is not specified, the default network will be used.{% endverbatim %}

+

{% verbatim %}This field is not used for external load balancing. For internal load balancing, this field identifies the network that the load balanced IP should belong to for this forwarding rule. If this field is not specified, the default network will be used.{% endverbatim %}

@@ -542,7 +535,7 @@ field is not specified, the default network will be used.{% endverbatim %}

string

-

{% verbatim %}Allowed value: The `selfLink` field of a `ComputeNetwork` resource.{% endverbatim %}

+

{% verbatim %}The compute network selflink of form "projects//global/networks/", when not managed by Config Connector.{% endverbatim %}

@@ -552,7 +545,7 @@ field is not specified, the default network will be used.{% endverbatim %}

string

-

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

+

{% verbatim %}The `name` field of a `ComputeNetwork` resource.{% endverbatim %}

@@ -562,7 +555,7 @@ field is not specified, the default network will be used.{% endverbatim %}

string

-

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

+

{% verbatim %}The `namespace` field of a `ComputeNetwork` resource.{% endverbatim %}

@@ -612,7 +605,6 @@ Some products have restrictions on what ports can be used. See [port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications) for details. - Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. @@ -640,7 +632,6 @@ pair, and cannot have overlapping 'portRange's.{% endverbatim %}

* By internal TCP/UDP load balancers, backend service-based network load balancers, internal protocol forwarding and when protocol is not L3_DEFAULT. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. Only packets addressed to these ports will be forwarded to the backends configured with this @@ -783,7 +774,7 @@ subnetwork must be specified.{% endverbatim %}

string

-

{% verbatim %}Allowed value: The `selfLink` field of a `ComputeSubnetwork` resource.{% endverbatim %}

+

{% verbatim %}The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", when not managed by Config Connector.{% endverbatim %}

@@ -793,7 +784,7 @@ subnetwork must be specified.{% endverbatim %}

string

-

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

+

{% verbatim %}The `name` field of a `ComputeSubnetwork` resource.{% endverbatim %}

@@ -803,7 +794,7 @@ subnetwork must be specified.{% endverbatim %}

string

-

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

+

{% verbatim %}The `namespace` field of a `ComputeSubnetwork` resource.{% endverbatim %}

@@ -813,10 +804,7 @@ subnetwork must be specified.{% endverbatim %}

object

-

{% verbatim %}The target resource to receive the matched traffic. The forwarded -traffic must be of a type appropriate to the target object. For -INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets -are valid.{% endverbatim %}

+

{% verbatim %}The target resource to receive the matched traffic. The forwarded traffic must be of a type appropriate to the target object. For INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets are valid.{% endverbatim %}

@@ -836,7 +824,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Allowed value: The `selfLink` field of a `ComputeServiceAttachment` resource.{% endverbatim %}

+

{% verbatim %}The ComputeServiceAttachment selflink in the form "projects/{{project}}/regions/{{region}}/serviceAttachments/{{name}}" when not managed by Config Connector.{% endverbatim %}

@@ -846,7 +834,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

+

{% verbatim %}The `name` field of a `ComputeServiceAttachment` resource.{% endverbatim %}

@@ -856,7 +844,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

+

{% verbatim %}The `namespace` field of a `ComputeServiceAttachment` resource.{% endverbatim %}

@@ -876,7 +864,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Allowed value: The `selfLink` field of a `ComputeTargetGRPCProxy` resource.{% endverbatim %}

+

{% verbatim %}The ComputeTargetGrpcProxy selflink in the form "projects/{{project}}/global/targetGrpcProxies/{{name}}" when not managed by Config Connector.{% endverbatim %}

@@ -886,7 +874,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

+

{% verbatim %}The `name` field of a `ComputeTargetGrpcProxy` resource.{% endverbatim %}

@@ -896,7 +884,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

+

{% verbatim %}The `namespace` field of a `ComputeTargetGrpcProxy` resource.{% endverbatim %}

@@ -916,7 +904,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Allowed value: The `selfLink` field of a `ComputeTargetHTTPProxy` resource.{% endverbatim %}

+

{% verbatim %}The ComputeTargetHTTPProxy selflink in the form "projects/{{project}}/global/targetHttpProxies/{{name}}" or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" when not managed by Config Connector.{% endverbatim %}

@@ -926,7 +914,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

+

{% verbatim %}The `name` field of a `ComputeTargetHTTPProxy` resource.{% endverbatim %}

@@ -936,7 +924,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

+

{% verbatim %}The `namespace` field of a `ComputeTargetHTTPProxy` resource.{% endverbatim %}

@@ -956,7 +944,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Allowed value: The `selfLink` field of a `ComputeTargetHTTPSProxy` resource.{% endverbatim %}

+

{% verbatim %}The ComputeTargetHTTPSProxy selflink in the form "projects/{{project}}/global/targetHttpProxies/{{name}}" or "projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}" when not managed by Config Connector.{% endverbatim %}

@@ -966,7 +954,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

+

{% verbatim %}The `name` field of a `ComputeTargetHTTPSProxy` resource.{% endverbatim %}

@@ -976,7 +964,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

+

{% verbatim %}The `namespace` field of a `ComputeTargetHTTPSProxy` resource.{% endverbatim %}

@@ -996,7 +984,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Allowed value: The `selfLink` field of a `ComputeTargetSSLProxy` resource.{% endverbatim %}

+

{% verbatim %}The ComputeTargetSSLProxy selflink in the form "projects/{{project}}/global/targetSslProxies/{{name}}" when not managed by Config Connector.{% endverbatim %}

@@ -1006,7 +994,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

+

{% verbatim %}The `name` field of a `ComputeTargetSSLProxy` resource.{% endverbatim %}

@@ -1016,7 +1004,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

+

{% verbatim %}The `namespace` field of a `ComputeTargetSSLProxy` resource.{% endverbatim %}

@@ -1036,7 +1024,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Allowed value: The `selfLink` field of a `ComputeTargetTCPProxy` resource.{% endverbatim %}

+

{% verbatim %}The ComputeTargetTCPProxy selflink in the form "projects/{{project}}/global/targetTcpProxies/{{name}}" or "projects/{{project}}/regions/{{region}}/targetTcpProxies/{{name}}" when not managed by Config Connector.{% endverbatim %}

@@ -1046,7 +1034,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

+

{% verbatim %}The `name` field of a `ComputeTargetTCPProxy` resource.{% endverbatim %}

@@ -1056,7 +1044,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

+

{% verbatim %}The `namespace` field of a `ComputeTargetTCPProxy` resource.{% endverbatim %}

@@ -1076,7 +1064,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Allowed value: The `selfLink` field of a `ComputeTargetVPNGateway` resource.{% endverbatim %}

+

{% verbatim %}The ComputeTargetVPNGateway selflink in the form "projects/{{project}}/regions/{{region}}/targetVpnGateways/{{name}}" when not managed by Config Connector.{% endverbatim %}

@@ -1086,7 +1074,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names{% endverbatim %}

+

{% verbatim %}The `name` field of a `ComputeTargetVPNGateway` resource.{% endverbatim %}

@@ -1096,7 +1084,7 @@ are valid.{% endverbatim %}

string

-

{% verbatim %}Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/{% endverbatim %}

+

{% verbatim %}The `namespace` field of a `ComputeTargetVPNGateway` resource.{% endverbatim %}

@@ -1117,6 +1105,7 @@ conditions: status: string type: string creationTimestamp: string +externalRef: string labelFingerprint: string observedGeneration: integer pscConnectionId: string @@ -1143,7 +1132,7 @@ serviceName: string conditions

list (object)

-

{% verbatim %}Conditions represent the latest available observation of the resource's current state.{% endverbatim %}

+

{% verbatim %}Conditions represent the latest available observations of the object's current state.{% endverbatim %}

@@ -1195,12 +1184,18 @@ serviceName: string

{% verbatim %}Creation timestamp in RFC3339 text format.{% endverbatim %}

+ + externalRef + +

string

+

{% verbatim %}A unique Config Connector specifier for the resource in GCP.{% endverbatim %}

+ + labelFingerprint

string

-

{% verbatim %}The fingerprint used for optimistic locking of this resource. Used -internally during updates.{% endverbatim %}

+

{% verbatim %}The fingerprint used for optimistic locking of this resource. Used internally during updates.{% endverbatim %}

diff --git a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/dataflow/dataflowflextemplatejob.md b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/dataflow/dataflowflextemplatejob.md index 8a78ad30f8..ef3e0b4ac8 100644 --- a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/dataflow/dataflowflextemplatejob.md +++ b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/dataflow/dataflowflextemplatejob.md @@ -405,7 +405,7 @@ transformNameMapping: {}

string

-

{% verbatim %}The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", when not managed by KCC.{% endverbatim %}

+

{% verbatim %}The ComputeSubnetwork selflink of form "projects/{{project}}/regions/{{region}}/subnetworks/{{name}}", when not managed by Config Connector.{% endverbatim %}

diff --git a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/gkehub/gkehubfeaturemembership.md b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/gkehub/gkehubfeaturemembership.md index 4defdef17d..d9e5a5ebde 100644 --- a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/gkehub/gkehubfeaturemembership.md +++ b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/gkehub/gkehubfeaturemembership.md @@ -474,7 +474,7 @@ projectRef:

object

-

{% verbatim %}**DEPRECATED** Configuring Hierarchy Controller through the configmanagement feature is no longer recommended. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead.{% endverbatim %}

+

{% verbatim %}Hierarchy Controller is no longer available. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead.{% endverbatim %}

@@ -1120,8 +1120,6 @@ apiVersion: gkehub.cnrm.cloud.google.com/v1beta1 kind: GKEHubFeature metadata: name: gkehubfeaturemembership-dep-acm - # The GKEHubFeature is a global resource in your project. - # In case you might have configured the resource using other clients like gcloud, abandon the resource when deleted. annotations: cnrm.cloud.google.com/deletion-policy: abandon spec: diff --git a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/logging/logginglogmetric.md b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/logging/logginglogmetric.md index 8ba42729bc..47a5ed58fd 100644 --- a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/logging/logginglogmetric.md +++ b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/logging/logginglogmetric.md @@ -495,7 +495,7 @@ valueExtractor: string

string

-

{% verbatim %}The `projectID` field of a project, when not managed by KCC.{% endverbatim %}

+

{% verbatim %}The `projectID` field of a project, when not managed by Config Connector.{% endverbatim %}

diff --git a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/monitoring/monitoringdashboard.md b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/monitoring/monitoringdashboard.md index 839ba9a9be..6f72aefae8 100644 --- a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/monitoring/monitoringdashboard.md +++ b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/monitoring/monitoringdashboard.md @@ -1414,7 +1414,7 @@ rowLayout:

string

-

{% verbatim %}The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by KCC.{% endverbatim %}

+

{% verbatim %}The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by Config Connector.{% endverbatim %}

@@ -1504,7 +1504,7 @@ rowLayout:

string

-

{% verbatim %}The `projectID` field of a project, when not managed by KCC.{% endverbatim %}

+

{% verbatim %}The `projectID` field of a project, when not managed by Config Connector.{% endverbatim %}

@@ -1664,7 +1664,7 @@ rowLayout:

string

-

{% verbatim %}The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by KCC.{% endverbatim %}

+

{% verbatim %}The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by Config Connector.{% endverbatim %}

@@ -4674,7 +4674,7 @@ rowLayout:

string

-

{% verbatim %}The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by KCC.{% endverbatim %}

+

{% verbatim %}The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by Config Connector.{% endverbatim %}

@@ -4764,7 +4764,7 @@ rowLayout:

string

-

{% verbatim %}The `projectID` field of a project, when not managed by KCC.{% endverbatim %}

+

{% verbatim %}The `projectID` field of a project, when not managed by Config Connector.{% endverbatim %}

@@ -4924,7 +4924,7 @@ rowLayout:

string

-

{% verbatim %}The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by KCC.{% endverbatim %}

+

{% verbatim %}The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by Config Connector.{% endverbatim %}

@@ -7884,7 +7884,7 @@ rowLayout:

string

-

{% verbatim %}The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by KCC.{% endverbatim %}

+

{% verbatim %}The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by Config Connector.{% endverbatim %}

@@ -7974,7 +7974,7 @@ rowLayout:

string

-

{% verbatim %}The `projectID` field of a project, when not managed by KCC.{% endverbatim %}

+

{% verbatim %}The `projectID` field of a project, when not managed by Config Connector.{% endverbatim %}

@@ -8134,7 +8134,7 @@ rowLayout:

string

-

{% verbatim %}The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by KCC.{% endverbatim %}

+

{% verbatim %}The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by Config Connector.{% endverbatim %}

@@ -11054,7 +11054,7 @@ rowLayout:

string

-

{% verbatim %}The `projectID` field of a project, when not managed by KCC.{% endverbatim %}

+

{% verbatim %}The `projectID` field of a project, when not managed by Config Connector.{% endverbatim %}

@@ -11184,7 +11184,7 @@ rowLayout:

string

-

{% verbatim %}The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by KCC.{% endverbatim %}

+

{% verbatim %}The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by Config Connector.{% endverbatim %}

@@ -11274,7 +11274,7 @@ rowLayout:

string

-

{% verbatim %}The `projectID` field of a project, when not managed by KCC.{% endverbatim %}

+

{% verbatim %}The `projectID` field of a project, when not managed by Config Connector.{% endverbatim %}

@@ -11434,7 +11434,7 @@ rowLayout:

string

-

{% verbatim %}The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by KCC.{% endverbatim %}

+

{% verbatim %}The MonitoringAlertPolicy link in the form "projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]", when not managed by Config Connector.{% endverbatim %}

diff --git a/scripts/shared-vars-public.sh b/scripts/shared-vars-public.sh index 74ddb75e73..1e1aaa5ab5 100644 --- a/scripts/shared-vars-public.sh +++ b/scripts/shared-vars-public.sh @@ -68,6 +68,7 @@ SUPPORTED_SERVICES=( edgecontainer.googleapis.com eventarc.googleapis.com file.googleapis.com + firestore.googleapis.com gkeconnect.googleapis.com gkehub.googleapis.com gkemulticloud.googleapis.com diff --git a/tests/README.VCRTesting.md b/tests/README.VCRTesting.md index 30f853c64a..3f692ec74b 100644 --- a/tests/README.VCRTesting.md +++ b/tests/README.VCRTesting.md @@ -25,7 +25,7 @@ E2E_KUBE_TARGET=envtest RUN_E2E=1 E2E_GCP_TARGET=vcr \ Test name `service` is a common substring that can be used by many tests, regex `^service$` ensures that only the specified test will run. -Three files will be generated: tf.yaml, dcl.yaml and oauth.yaml. Requests from +Three files will be generated: tf.yaml, nontf.yaml and oauth.yaml. Requests from different http clients will be saved into different files. ## Replay Mode diff --git a/tests/apichecks/testdata/exceptions/acronyms.txt b/tests/apichecks/testdata/exceptions/acronyms.txt index 8af2ab2b82..73cbf308a6 100644 --- a/tests/apichecks/testdata/exceptions/acronyms.txt +++ b/tests/apichecks/testdata/exceptions/acronyms.txt @@ -37,8 +37,6 @@ [acronyms] crd=appenginestandardappversions.appengine.cnrm.cloud.google.com version=v1alpha1: field ".spec.handlers[].redirectHttpResponseCode" should be ".spec.handlers[].redirectHTTPResponseCode" [acronyms] crd=appenginestandardappversions.appengine.cnrm.cloud.google.com version=v1alpha1: field ".spec.runtimeApiVersion" should be ".spec.runtimeAPIVersion" [acronyms] crd=bigqueryanalyticshublistings.bigqueryanalyticshub.cnrm.cloud.google.com version=v1alpha1: field ".spec.dataExchangeId" should be ".spec.dataExchangeID" -[acronyms] crd=bigqueryconnectionconnections.bigqueryconnection.cnrm.cloud.google.com version=v1alpha1: field ".spec.cloudResource.serviceAccountId" should be ".spec.cloudResource.serviceAccountID" -[acronyms] crd=bigqueryconnectionconnections.bigqueryconnection.cnrm.cloud.google.com version=v1alpha1: field ".status.observedState.cloudResource.serviceAccountId" should be ".status.observedState.cloudResource.serviceAccountID" [acronyms] crd=bigquerydatasetaccesses.bigquery.cnrm.cloud.google.com version=v1alpha1: field ".spec.dataset.dataset.datasetId" should be ".spec.dataset.dataset.datasetID" [acronyms] crd=bigquerydatasetaccesses.bigquery.cnrm.cloud.google.com version=v1alpha1: field ".spec.dataset.dataset.projectId" should be ".spec.dataset.dataset.projectID" [acronyms] crd=bigquerydatasetaccesses.bigquery.cnrm.cloud.google.com version=v1alpha1: field ".spec.datasetId" should be ".spec.datasetID" diff --git a/tests/apichecks/testdata/exceptions/missingrefs.txt b/tests/apichecks/testdata/exceptions/missingrefs.txt index 22c57ce4dc..fbdc519bf5 100644 --- a/tests/apichecks/testdata/exceptions/missingrefs.txt +++ b/tests/apichecks/testdata/exceptions/missingrefs.txt @@ -47,7 +47,6 @@ [refs] crd=essentialcontactscontacts.essentialcontacts.cnrm.cloud.google.com version=v1alpha1: field ".spec.parent" should be a reference [refs] crd=gkebackupbackupplans.gkebackup.cnrm.cloud.google.com version=v1alpha1: field ".spec.backupConfig.encryptionKey.gcpKmsEncryptionKey" should be a reference [refs] crd=notebooksenvironments.notebooks.cnrm.cloud.google.com version=v1alpha1: field ".spec.vmImage.project" should be a reference -[refs] crd=securesourcemanagerinstances.securesourcemanager.cnrm.cloud.google.com version=v1alpha1: field ".spec.kmsKey" should be a reference [refs] crd=tagstagkeys.tags.cnrm.cloud.google.com version=v1beta1: field ".spec.parent" should be a reference [refs] crd=vertexaifeaturestoreentitytypefeatures.vertexai.cnrm.cloud.google.com version=v1alpha1: field ".spec.entitytype" should be a reference [refs] crd=vertexaifeaturestoreentitytypes.vertexai.cnrm.cloud.google.com version=v1alpha1: field ".spec.featurestore" should be a reference diff --git a/tests/e2e/httplog.go b/tests/e2e/httplog.go index fb30ca723b..7b55946223 100644 --- a/tests/e2e/httplog.go +++ b/tests/e2e/httplog.go @@ -76,6 +76,12 @@ func RemoveExtraEvents(events test.LogEntries) test.LogEntries { case "JOB_STATE_PENDING", "JOB_STATE_QUEUED": return false } + // Also handle when we're encoding enums as integers + currentStateEnum, _, _ := unstructured.NestedInt64(responseBody, "currentState") + switch currentStateEnum { + case 9 /* JOB_STATE_PENDING */, 11 /* JOB_STATE_QUEUED */ : + return false + } return true }) diff --git a/tests/e2e/normalize.go b/tests/e2e/normalize.go index 4e52889d99..91ae95eff8 100644 --- a/tests/e2e/normalize.go +++ b/tests/e2e/normalize.go @@ -83,6 +83,9 @@ func normalizeKRMObject(t *testing.T, u *unstructured.Unstructured, project test // Specific to Dataflow visitor.sortAndDeduplicateSlices.Insert(".spec.additionalExperiments") + // Specific to Firestore + visitor.replacePaths[".status.observedState.earliestVersionTime"] = "1970-01-01T00:00:00Z" + // Specific to Sql visitor.replacePaths[".items[].etag"] = "abcdef0123A=" visitor.replacePaths[".status.firstIpAddress"] = "10.1.2.3" @@ -132,6 +135,7 @@ func normalizeKRMObject(t *testing.T, u *unstructured.Unstructured, project test visitor.replacePaths[".status.proxyId"] = 1111111111111111 visitor.replacePaths[".status.mapId"] = 1111111111111111 visitor.replacePaths[".status.id"] = 1111111111111111 + visitor.replacePaths[".status.certificateId"] = 1111111111111111 visitor.replacePaths[".status.labelFingerprint"] = "abcdef0123A=" visitor.replacePaths[".status.fingerprint"] = "abcdef0123A=" @@ -168,7 +172,7 @@ func normalizeKRMObject(t *testing.T, u *unstructured.Unstructured, project test visitor.replacePaths[".status.jobId"] = "${jobID}" // Specific to BigQueryConnectionConnection. - visitor.replacePaths[".status.observedState.cloudResource.serviceAccountId"] = "bqcx-${projectNumber}-abcd@gcp-sa-bigquery-condel.iam.gserviceaccount.com" + visitor.replacePaths[".status.observedState.cloudResource.serviceAccountID"] = "bqcx-${projectNumber}-abcd@gcp-sa-bigquery-condel.iam.gserviceaccount.com" // TODO: This should not be needed, we want to avoid churning the kube objects visitor.sortSlices.Insert(".spec.access") @@ -500,6 +504,7 @@ func NormalizeHTTPLog(t *testing.T, events test.LogEntries, project testgcp.GCPP events.RemoveHTTPResponseHeader("Date") events.RemoveHTTPResponseHeader("Alt-Svc") events.RemoveHTTPResponseHeader("Server-Timing") + events.RemoveHTTPResponseHeader("X-Debug-Tracking-Id") events.RemoveHTTPResponseHeader("X-Guploader-Uploadid") events.RemoveHTTPResponseHeader("Etag") events.RemoveHTTPResponseHeader("Content-Length") // an artifact of encoding @@ -561,12 +566,15 @@ func normalizeHTTPResponses(t *testing.T, events test.LogEntries) { visitor.replacePaths[".fingerprint"] = "abcdef0123A=" visitor.replacePaths[".startTime"] = "2024-04-01T12:34:56.123456Z" - // Compute URLs: Replace any compute beta URLs with v1 URLs - // Terraform uses the /beta/ endpoints, but mocks and direct controller should use /v1/ - // This special handling to avoid diffs in http logs. - // This can be removed once all Compute resources are migrated to direct controller. for _, event := range events { + // Compute URLs: Replace any compute beta URLs with v1 URLs + // Terraform uses the /beta/ endpoints, but mocks and direct controller should use /v1/ + // This special handling to avoid diffs in http logs. + // This can be removed once all Compute resources are migrated to direct controller. event.Request.URL = rewriteComputeURL(event.Request.URL) + + // Normalize etags in URLS + event.Request.URL = normalizeEtagsInURL(event.Request.URL) } visitor.stringTransforms = append(visitor.stringTransforms, func(path string, s string) string { @@ -631,6 +639,11 @@ func rewriteComputeURL(u string) string { return u } +func normalizeEtagsInURL(u string) string { + re := regexp.MustCompile(`etag=[a-zA-Z0-9%]+`) + return re.ReplaceAllString(u, "etag=abcdef0123A") +} + // isGetOperation returns true if this is an operation poll request func isGetOperation(e *test.LogEntry) bool { if strings.Contains(e.Request.URL, "/operations/${operationID}") { diff --git a/tests/e2e/testdata/scenarios/powertool/powertool_set_bucket_location/_object00.yaml b/tests/e2e/testdata/scenarios/powertool/powertool_set_bucket_location/_object00.yaml index 14d0829292..d9e050abd9 100644 --- a/tests/e2e/testdata/scenarios/powertool/powertool_set_bucket_location/_object00.yaml +++ b/tests/e2e/testdata/scenarios/powertool/powertool_set_bucket_location/_object00.yaml @@ -1,24 +1,10 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: storage.cnrm.cloud.google.com/v1beta1 kind: StorageBucket metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -33,13 +19,8 @@ spec: type: Delete condition: age: 7 - withState: ANY location: US - publicAccessPrevention: inherited resourceID: storagebucket-${uniqueId} - softDeletePolicy: - retentionDurationSeconds: 604800 - storageClass: STANDARD versioning: enabled: false status: @@ -55,4 +36,4 @@ status: effectiveTime: "1970-01-01T00:00:00Z" retentionDurationSeconds: 604800 selfLink: https://www.googleapis.com/storage/v1/b/storagebucket-${uniqueId} - url: gs://storagebucket-${uniqueId} \ No newline at end of file + url: gs://storagebucket-${uniqueId} diff --git a/tests/e2e/testdata/scenarios/powertool/powertool_set_bucket_location/_object02.yaml b/tests/e2e/testdata/scenarios/powertool/powertool_set_bucket_location/_object02.yaml index 631d6a03e5..708d206e71 100644 --- a/tests/e2e/testdata/scenarios/powertool/powertool_set_bucket_location/_object02.yaml +++ b/tests/e2e/testdata/scenarios/powertool/powertool_set_bucket_location/_object02.yaml @@ -1,24 +1,10 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - apiVersion: storage.cnrm.cloud.google.com/v1beta1 kind: StorageBucket metadata: annotations: cnrm.cloud.google.com/management-conflict-prevention-policy: none cnrm.cloud.google.com/project-id: ${projectId} - cnrm.cloud.google.com/state-into-spec: merge + cnrm.cloud.google.com/state-into-spec: absent finalizers: - cnrm.cloud.google.com/finalizer - cnrm.cloud.google.com/deletion-defender @@ -33,13 +19,8 @@ spec: type: Delete condition: age: 7 - withState: ANY location: EU - publicAccessPrevention: inherited resourceID: storagebucket-${uniqueId} - softDeletePolicy: - retentionDurationSeconds: 604800 - storageClass: STANDARD versioning: enabled: false status: @@ -55,4 +36,4 @@ status: effectiveTime: "1970-01-01T00:00:00Z" retentionDurationSeconds: 604800 selfLink: https://www.googleapis.com/storage/v1/b/storagebucket-${uniqueId} - url: gs://storagebucket-${uniqueId} \ No newline at end of file + url: gs://storagebucket-${uniqueId} diff --git a/tests/e2e/testdata/scenarios/powertool/storagebucket_clear_state_into_spec/script.yaml b/tests/e2e/testdata/scenarios/powertool/storagebucket_clear_state_into_spec/script.yaml index a72650c766..6f11ff5197 100644 --- a/tests/e2e/testdata/scenarios/powertool/storagebucket_clear_state_into_spec/script.yaml +++ b/tests/e2e/testdata/scenarios/powertool/storagebucket_clear_state_into_spec/script.yaml @@ -17,6 +17,8 @@ apiVersion: storage.cnrm.cloud.google.com/v1beta1 kind: StorageBucket metadata: + annotations: + cnrm.cloud.google.com/state-into-spec: "merge" labels: label-one: "value-one" name: storagebucket-merge-${uniqueId} diff --git a/tests/e2e/unified_test.go b/tests/e2e/unified_test.go index 26b03fa3f3..90b0dc7475 100644 --- a/tests/e2e/unified_test.go +++ b/tests/e2e/unified_test.go @@ -229,9 +229,9 @@ func runScenario(ctx context.Context, t *testing.T, testPause bool, fixture reso uniqueID = strconv.FormatUint(hash(t.Name()), 36) // Stop recording after tests finish and write to cassette t.Cleanup(func() { - err := h.VCRRecorderDCL.Stop() + err := h.VCRRecorderNonTF.Stop() if err != nil { - t.Errorf("[VCR] Failed stop DCL vcr recorder: %v", err) + t.Errorf("[VCR] Failed stop non TF vcr recorder: %v", err) } err = h.VCRRecorderTF.Stop() if err != nil { @@ -487,6 +487,7 @@ func runScenario(ctx context.Context, t *testing.T, testPause bool, fixture reso addReplacement("createTime", "2024-04-01T12:34:56.123456Z") addReplacement("insertTime", "2024-04-01T12:34:56.123456Z") addReplacement("response.createTime", "2024-04-01T12:34:56.123456Z") + addReplacement("response.deleteTime", "2024-04-01T12:34:56.123456Z") addReplacement("creationTimestamp", "2024-04-01T12:34:56.123456Z") addReplacement("metadata.createTime", "2024-04-01T12:34:56.123456Z") addReplacement("metadata.genericMetadata.createTime", "2024-04-01T12:34:56.123456Z") @@ -537,14 +538,28 @@ func runScenario(ctx context.Context, t *testing.T, testPause bool, fixture reso if n >= 2 { kind := tokens[n-2] switch kind { - case "subnetworks": - r.PathIDs[targetId] = "${subnetworkNumber}" - case "sslCertificates": - r.PathIDs[targetId] = "${sslCertificatesId}" + case "addresses": + r.PathIDs[targetId] = "${addressesId}" + case "backendServices": + r.PathIDs[targetId] = "${backendServicesId}" case "forwardingRules": r.PathIDs[targetId] = "${forwardingRulesId}" + case "healthChecks": + r.PathIDs[targetId] = "${healthChecksId}" case "serviceAttachments": r.PathIDs[targetId] = "${serviceAttachmentsId}" + case "sslCertificates": + r.PathIDs[targetId] = "${sslCertificatesId}" + case "subnetworks": + r.PathIDs[targetId] = "${subnetworkNumber}" + case "targetHttpsProxies": + r.PathIDs[targetId] = "${targetHttpsProxiesId}" + case "targetSslProxies": + r.PathIDs[targetId] = "${targetSslProxiesId}" + case "targetTcpProxies": + r.PathIDs[targetId] = "${targetTcpProxiesId}" + case "urlMaps": + r.PathIDs[targetId] = "${urlMapsId}" } } } @@ -610,6 +625,23 @@ func runScenario(ctx context.Context, t *testing.T, testPause bool, fixture reso addSetStringReplacement(".metadata.requestTime", "2024-04-01T12:34:56.123456Z") addSetStringReplacement(".metadata.finishTime", "2024-04-01T12:34:56.123456Z") + // Specific to Firestore + jsonMutators = append(jsonMutators, func(obj map[string]any) { + if _, found, _ := unstructured.NestedMap(obj, "response"); found { + // Only run this mutator for firestore database objects. + if val, found, err := unstructured.NestedString(obj, "response", "@type"); err == nil && found && val == "type.googleapis.com/google.firestore.admin.v1.Database" { + // Only run this mutator for firestore database objects that have a name set in the response. + if val, found, err := unstructured.NestedString(obj, "response", "name"); err == nil && found && val != "" { + // Set name field to use human-readable ID, instead of UID + // Note: This only works if firestore databases in all resource fixture test cases use the name "firestoredatabase-${uniqueId}" + if err := unstructured.SetNestedField(obj, "projects/${projectId}/databases/firestoredatabase-${uniqueId}", "response", "name"); err != nil { + t.Fatal(err) + } + } + } + } + }) + // Specific to pubsub addReplacement("revisionCreateTime", "2024-04-01T12:34:56.123456Z") addReplacement("revisionId", "revision-id-placeholder") @@ -1033,7 +1065,7 @@ func configureVCR(t *testing.T, h *create.Harness) { return nil } - h.VCRRecorderDCL.AddHook(hook, recorder.BeforeSaveHook) + h.VCRRecorderNonTF.AddHook(hook, recorder.BeforeSaveHook) h.VCRRecorderTF.AddHook(hook, recorder.BeforeSaveHook) h.VCRRecorderOauth.AddHook(hook, recorder.BeforeSaveHook) @@ -1073,7 +1105,7 @@ func configureVCR(t *testing.T, h *create.Harness) { } return true } - h.VCRRecorderDCL.SetMatcher(matcher) + h.VCRRecorderNonTF.SetMatcher(matcher) h.VCRRecorderTF.SetMatcher(matcher) h.VCRRecorderOauth.SetMatcher(matcher) }