gapic-generator-csharp
gapic-generator-csharp copied to clipboard
Consider generating properties for resource references in nested messages
Consider the following proto:
message Abc {
string location = 1 [
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
message Def {
string location = 1 [
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
}
}
Currently we'll generate a LocationAsLocationName property for Abc, but not for Def (it's in ResourceNamesGenerator.ProtoMessagePartials).
Generating the extra properties is:
- Fiddly because we need to generate the partial classes for all the enclosing types
- Potentially breaking for existing libraries
... on the other hand, this inconsistency is annoying.
I don't think we've had a single customer request this.
The following fields would have resource annotations generated for them:
- google.cloud.aiplatform.v1.ReadFeatureValuesResponse.Header.entity_type
- google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingDataset.dataset
- google.cloud.aiplatform.v1.MigratableResource.MlEngineModelVersion.version
- google.cloud.aiplatform.v1.MigratableResource.AutomlModel.model
- google.cloud.aiplatform.v1.MigratableResource.AutomlDataset.dataset
- google.cloud.aiplatform.v1.MigratableResource.DataLabelingDataset.DataLabelingAnnotatedDataset.annotated_dataset
- google.cloud.aiplatform.v1.MigratableResource.DataLabelingDataset.dataset
- google.cloud.aiplatform.v1.MigrateResourceRequest.MigrateMlEngineModelVersionConfig.model_version
- google.cloud.aiplatform.v1.MigrateResourceRequest.MigrateAutomlModelConfig.model
- google.cloud.aiplatform.v1.MigrateResourceRequest.MigrateAutomlDatasetConfig.dataset
- google.cloud.aiplatform.v1.MigrateResourceRequest.MigrateDataLabelingDatasetConfig.MigrateDataLabelingAnnotatedDatasetConfig.annotated_dataset
- google.cloud.aiplatform.v1.MigrateResourceRequest.MigrateDataLabelingDatasetConfig.dataset
- google.cloud.aiplatform.v1.BatchMigrateResourcesOperationMetadata.PartialResult.model
- google.cloud.aiplatform.v1.BatchMigrateResourcesOperationMetadata.PartialResult.dataset
- google.cloud.aiplatform.v1.PipelineTaskExecutorDetail.ContainerDetail.main_job
- google.cloud.aiplatform.v1.PipelineTaskExecutorDetail.ContainerDetail.pre_caching_check_job
- google.cloud.aiplatform.v1.PipelineTaskExecutorDetail.CustomJobDetail.job
- google.cloud.baremetalsolution.v2.NfsShare.AllowedClient.network
- google.cloud.beyondcorp.appconnections.v1.AppConnection.Gateway.app_gateway
- google.cloud.bigquery.analyticshub.v1.Listing.BigQueryDatasetSource.dataset
- google.cloud.bigquery.dataexchange.v1beta1.Listing.BigQueryDatasetSource.dataset
- google.bigtable.admin.v2.Cluster.EncryptionConfig.kms_key_name
- google.cloud.certificatemanager.v1.Certificate.ManagedCertificate.dns_authorizations
- google.cloud.channel.v1.RepricingConfig.EntitlementGranularity.entitlement
- google.devtools.cloudbuild.v1.BuildOptions.PoolOption.name
- google.devtools.cloudbuild.v1.PrivatePoolV1Config.NetworkConfig.peered_network
- google.container.v1.NotificationConfig.PubSub.topic
- google.cloud.deploy.v1.Release.TargetRender.rendering_build
- google.cloud.dialogflow.cx.v3.Form.Parameter.entity_type
- google.cloud.dialogflow.cx.v3.Deployment.Result.deployment_test_results
- google.cloud.dialogflow.cx.v3.Deployment.Result.experiment
- google.cloud.dialogflow.cx.v3.Intent.Parameter.entity_type
- google.cloud.dialogflow.cx.v3.IntentCoverage.Intent.intent
- google.cloud.dialogflow.cx.v3.Webhook.ServiceDirectoryConfig.service
- google.cloud.dialogflow.cx.v3.WebhookRequest.IntentInfo.last_matched_intent
- google.cloud.dialogflow.cx.v3.Environment.VersionConfig.version
- google.cloud.dialogflow.cx.v3.Environment.TestCasesConfig.test_cases
- google.cloud.dialogflow.cx.v3.Experiment.Result.VersionMetrics.version
- google.cloud.dialogflow.v2.EvaluationConfig.SmartReplyConfig.allowlist_document
- google.cloud.dialogflow.v2.EvaluationConfig.SmartComposeConfig.allowlist_document
- google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource.knowledge_bases
- google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource.documents
- google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.agent
- google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationModelConfig.model
- google.cloud.dialogflow.v2beta1.KnowledgeAnswers.Answer.source
- google.cloud.dialogflow.v2beta1.SuggestConversationSummaryResponse.Summary.answer_record
- google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource.knowledge_bases
- google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource.documents
- google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.agent
- google.cloud.dialogflow.v2beta1.HumanAgentAssistantConfig.ConversationModelConfig.model
- google.cloud.documentai.v1.ProcessorVersion.DeprecationInfo.replacement_processor_version
- google.cloud.documentai.v1beta3.ProcessorVersion.DeprecationInfo.replacement_processor_version
- google.cloud.kms.v1.EkmConnection.ServiceResolver.service_directory_service
- google.cloud.metastore.v1alpha.NetworkConfig.Consumer.subnetwork
- google.monitoring.v3.AlertPolicy.Condition.name
- google.cloud.osconfig.v1alpha.InstanceOSPoliciesCompliance.OSPolicyCompliance.os_policy_assignment
- google.cloud.security.privateca.v1.CertificateRevocationList.RevokedCertificate.certificate
- google.cloud.speech.v2.SpeechAdaptation.AdaptationPhraseSet.phrase_set